{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Initialize Folders"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from __future__ import print_function\n",
    "from imutils import paths\n",
    "import os\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "import numpy as np\n",
    "import keras\n",
    "\n",
    "from keras.preprocessing import image as image_utils\n",
    "from keras.preprocessing.image import load_img\n",
    "from keras.preprocessing.image import img_to_array\n",
    "from keras.preprocessing.image import array_to_img\n",
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from keras.models import *\n",
    "from keras.layers import *\n",
    "from keras.optimizers import *\n",
    "from keras.callbacks import ModelCheckpoint, LearningRateScheduler, TensorBoard, EarlyStopping\n",
    "from keras import backend as keras\n",
    "\n",
    "from datetime import datetime\n",
    "\n",
    "from UnetModel import *\n",
    "#import skimage.io as io\n",
    "#import skimage.transform as trans\n",
    "\n",
    "#K.set_image_data_format(\"channels_last\")\n",
    "\n",
    "%matplotlib inline\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From C:\\Users\\li_ni\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\notebooks\\MelanomaSegmentation\\UnetModel.py:466: UserWarning: Update your `Model` call to the Keras 2 API: `Model(inputs=Tensor(\"in..., outputs=Tensor(\"co...)`\n",
      "  model = Model(input=inputs, output=output)\n"
     ]
    }
   ],
   "source": [
    "img_rows = 256\n",
    "img_cols = 256\n",
    "\n",
    "#Training data generation\n",
    "data_gen_args = dict(\n",
    "#    samplewise_center = True,\n",
    "#    samplewise_std_normalization = True,\n",
    "    rotation_range=180,\n",
    "    width_shift_range=0.05,\n",
    "    height_shift_range=0.05,\n",
    "    shear_range=0.05,\n",
    "    zoom_range=0.05,\n",
    "    horizontal_flip=True,\n",
    "    vertical_flip = True,\n",
    "    fill_mode='nearest')\n",
    "\n",
    "#Validation data generation\n",
    "data_val_gen_args = dict(\n",
    "    #samplewise_center = True,\n",
    "    #samplewise_std_normalization = True\n",
    "    )\n",
    "\n",
    "#Create UNet Model\n",
    "#model = FullUnetModel()\n",
    "#model = UnetModel()\n",
    "#model = BiggerLeakyUnetModelWithBatchnorm()\n",
    "model = BiggerLeakyUnetModel()\n",
    "#model = BiggerLeakyUnetModelWithLayernorm()\n",
    "#model = BiggerLeakyUnetModelWithBatchLayernorm()\n",
    "\n",
    "#Setup generator\n",
    "batch_size = 2\n",
    "      \n",
    "myGene = trainGenerator(batch_size,'data/train','images','masks',data_gen_args, target_size= (img_rows,img_rows))\n",
    "myValGene = validationGenerator(batch_size,'data/val','images','masks',data_val_gen_args, target_size= (img_rows,img_rows))\n",
    "\n",
    "#Create folder for models\n",
    "date_object = datetime.now()\n",
    "# convert object to the format we want\n",
    "formatted_date = date_object.strftime('%Y%m%d')\n",
    "output_dir = 'unet/{}'.format(formatted_date)\n",
    "os.makedirs(output_dir, exist_ok =True)\n",
    "\n",
    "#Setup Checkpoint to only capture best estimate\n",
    "model_checkpoint = ModelCheckpoint('{}/unet_lesion_{{epoch:03d}}-{{val_jaccard_coef:.5f}}.hdf5'.format(output_dir)\n",
    "                                   , monitor='val_jaccard_coef'\n",
    "                                   ,verbose=1, mode='max', save_best_only=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "Found 519 images belonging to 1 classes.\n",
      "Found 1555 images belonging to 1 classes.\n",
      "Found 519 images belonging to 1 classes.\n",
      "Found 1555 images belonging to 1 classes.\n",
      "1000/1000 [==============================] - 646s 646ms/step - loss: -0.4407 - jaccard_coef: 0.4407 - val_loss: -0.6108 - val_jaccard_coef: 0.6108\n",
      "\n",
      "Epoch 00001: val_jaccard_coef improved from -inf to 0.61076, saving model to unet/20190604/unet_lesion_001-0.61076.hdf5\n",
      "Epoch 2/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.6277 - jaccard_coef: 0.6277 - val_loss: -0.6550 - val_jaccard_coef: 0.6550\n",
      "\n",
      "Epoch 00002: val_jaccard_coef improved from 0.61076 to 0.65500, saving model to unet/20190604/unet_lesion_002-0.65500.hdf5\n",
      "Epoch 3/100\n",
      "1000/1000 [==============================] - 625s 625ms/step - loss: -0.6740 - jaccard_coef: 0.6740 - val_loss: -0.7054 - val_jaccard_coef: 0.7054\n",
      "\n",
      "Epoch 00003: val_jaccard_coef improved from 0.65500 to 0.70543, saving model to unet/20190604/unet_lesion_003-0.70543.hdf5\n",
      "Epoch 4/100\n",
      "1000/1000 [==============================] - 607s 607ms/step - loss: -0.6837 - jaccard_coef: 0.6837 - val_loss: -0.7000 - val_jaccard_coef: 0.7000\n",
      "\n",
      "Epoch 00004: val_jaccard_coef did not improve from 0.70543\n",
      "Epoch 5/100\n",
      "1000/1000 [==============================] - 616s 616ms/step - loss: -0.7017 - jaccard_coef: 0.7017 - val_loss: -0.7454 - val_jaccard_coef: 0.7454\n",
      "\n",
      "Epoch 00005: val_jaccard_coef improved from 0.70543 to 0.74544, saving model to unet/20190604/unet_lesion_005-0.74544.hdf5\n",
      "Epoch 6/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.7270 - jaccard_coef: 0.7270 - val_loss: -0.7205 - val_jaccard_coef: 0.7205\n",
      "\n",
      "Epoch 00006: val_jaccard_coef did not improve from 0.74544\n",
      "Epoch 7/100\n",
      "1000/1000 [==============================] - 616s 616ms/step - loss: -0.7252 - jaccard_coef: 0.7252 - val_loss: -0.7330 - val_jaccard_coef: 0.7330\n",
      "\n",
      "Epoch 00007: val_jaccard_coef did not improve from 0.74544\n",
      "Epoch 8/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7291 - jaccard_coef: 0.7291 - val_loss: -0.7611 - val_jaccard_coef: 0.7611\n",
      "\n",
      "Epoch 00008: val_jaccard_coef improved from 0.74544 to 0.76110, saving model to unet/20190604/unet_lesion_008-0.76110.hdf5\n",
      "Epoch 9/100\n",
      "1000/1000 [==============================] - 615s 615ms/step - loss: -0.7388 - jaccard_coef: 0.7388 - val_loss: -0.7456 - val_jaccard_coef: 0.7456\n",
      "\n",
      "Epoch 00009: val_jaccard_coef did not improve from 0.76110\n",
      "Epoch 10/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.7392 - jaccard_coef: 0.7392 - val_loss: -0.7346 - val_jaccard_coef: 0.7346\n",
      "\n",
      "Epoch 00010: val_jaccard_coef did not improve from 0.76110\n",
      "Epoch 11/100\n",
      "1000/1000 [==============================] - 619s 619ms/step - loss: -0.7476 - jaccard_coef: 0.7476 - val_loss: -0.7326 - val_jaccard_coef: 0.7326\n",
      "\n",
      "Epoch 00011: val_jaccard_coef did not improve from 0.76110\n",
      "Epoch 12/100\n",
      "1000/1000 [==============================] - 606s 606ms/step - loss: -0.7392 - jaccard_coef: 0.7392 - val_loss: -0.7521 - val_jaccard_coef: 0.7521\n",
      "\n",
      "Epoch 00012: val_jaccard_coef did not improve from 0.76110\n",
      "Epoch 13/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7520 - jaccard_coef: 0.7520 - val_loss: -0.7671 - val_jaccard_coef: 0.7671\n",
      "\n",
      "Epoch 00013: val_jaccard_coef improved from 0.76110 to 0.76709, saving model to unet/20190604/unet_lesion_013-0.76709.hdf5\n",
      "Epoch 14/100\n",
      "1000/1000 [==============================] - 611s 611ms/step - loss: -0.7624 - jaccard_coef: 0.7624 - val_loss: -0.7736 - val_jaccard_coef: 0.7736\n",
      "\n",
      "Epoch 00014: val_jaccard_coef improved from 0.76709 to 0.77359, saving model to unet/20190604/unet_lesion_014-0.77359.hdf5\n",
      "Epoch 15/100\n",
      "1000/1000 [==============================] - 611s 611ms/step - loss: -0.7600 - jaccard_coef: 0.7600 - val_loss: -0.7749 - val_jaccard_coef: 0.7749\n",
      "\n",
      "Epoch 00015: val_jaccard_coef improved from 0.77359 to 0.77492, saving model to unet/20190604/unet_lesion_015-0.77492.hdf5\n",
      "Epoch 16/100\n",
      "1000/1000 [==============================] - 612s 612ms/step - loss: -0.7631 - jaccard_coef: 0.7631 - val_loss: -0.7619 - val_jaccard_coef: 0.7619\n",
      "\n",
      "Epoch 00016: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 17/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7609 - jaccard_coef: 0.7609 - val_loss: -0.7499 - val_jaccard_coef: 0.7499\n",
      "\n",
      "Epoch 00017: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 18/100\n",
      "1000/1000 [==============================] - 622s 622ms/step - loss: -0.7602 - jaccard_coef: 0.7602 - val_loss: -0.7376 - val_jaccard_coef: 0.7376\n",
      "\n",
      "Epoch 00018: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 19/100\n",
      "1000/1000 [==============================] - 612s 612ms/step - loss: -0.7669 - jaccard_coef: 0.7669 - val_loss: -0.7656 - val_jaccard_coef: 0.7656\n",
      "\n",
      "Epoch 00019: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 20/100\n",
      "1000/1000 [==============================] - 618s 618ms/step - loss: -0.7645 - jaccard_coef: 0.7645 - val_loss: -0.7551 - val_jaccard_coef: 0.7551\n",
      "\n",
      "Epoch 00020: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 21/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.7699 - jaccard_coef: 0.7699 - val_loss: -0.7189 - val_jaccard_coef: 0.7189\n",
      "\n",
      "Epoch 00021: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 22/100\n",
      "1000/1000 [==============================] - 616s 616ms/step - loss: -0.7671 - jaccard_coef: 0.7671 - val_loss: -0.7614 - val_jaccard_coef: 0.7614\n",
      "\n",
      "Epoch 00022: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 23/100\n",
      "1000/1000 [==============================] - 597s 597ms/step - loss: -0.7718 - jaccard_coef: 0.7718 - val_loss: -0.7724 - val_jaccard_coef: 0.7724\n",
      "\n",
      "Epoch 00023: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 24/100\n",
      "1000/1000 [==============================] - 614s 614ms/step - loss: -0.7677 - jaccard_coef: 0.7677 - val_loss: -0.7512 - val_jaccard_coef: 0.7512\n",
      "\n",
      "Epoch 00024: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 25/100\n",
      "1000/1000 [==============================] - 618s 618ms/step - loss: -0.7772 - jaccard_coef: 0.7772 - val_loss: -0.7733 - val_jaccard_coef: 0.7733\n",
      "\n",
      "Epoch 00025: val_jaccard_coef did not improve from 0.77492\n",
      "Epoch 26/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.7718 - jaccard_coef: 0.7718 - val_loss: -0.7808 - val_jaccard_coef: 0.7808\n",
      "\n",
      "Epoch 00026: val_jaccard_coef improved from 0.77492 to 0.78080, saving model to unet/20190604/unet_lesion_026-0.78080.hdf5\n",
      "Epoch 27/100\n",
      "1000/1000 [==============================] - 614s 614ms/step - loss: -0.7740 - jaccard_coef: 0.7740 - val_loss: -0.7660 - val_jaccard_coef: 0.7660\n",
      "\n",
      "Epoch 00027: val_jaccard_coef did not improve from 0.78080\n",
      "Epoch 28/100\n",
      "1000/1000 [==============================] - 617s 617ms/step - loss: -0.7799 - jaccard_coef: 0.7799 - val_loss: -0.7486 - val_jaccard_coef: 0.7486\n",
      "\n",
      "Epoch 00028: val_jaccard_coef did not improve from 0.78080\n",
      "Epoch 29/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7737 - jaccard_coef: 0.7737 - val_loss: -0.7883 - val_jaccard_coef: 0.7883\n",
      "\n",
      "Epoch 00029: val_jaccard_coef improved from 0.78080 to 0.78828, saving model to unet/20190604/unet_lesion_029-0.78828.hdf5\n",
      "Epoch 30/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.7760 - jaccard_coef: 0.7760 - val_loss: -0.7921 - val_jaccard_coef: 0.7921\n",
      "\n",
      "Epoch 00030: val_jaccard_coef improved from 0.78828 to 0.79211, saving model to unet/20190604/unet_lesion_030-0.79211.hdf5\n",
      "Epoch 31/100\n",
      "1000/1000 [==============================] - 617s 617ms/step - loss: -0.7811 - jaccard_coef: 0.7811 - val_loss: -0.7904 - val_jaccard_coef: 0.7904\n",
      "\n",
      "Epoch 00031: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 32/100\n",
      "1000/1000 [==============================] - 603s 603ms/step - loss: -0.7798 - jaccard_coef: 0.7798 - val_loss: -0.7788 - val_jaccard_coef: 0.7788\n",
      "\n",
      "Epoch 00032: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 33/100\n",
      "1000/1000 [==============================] - 618s 618ms/step - loss: -0.7795 - jaccard_coef: 0.7795 - val_loss: -0.7857 - val_jaccard_coef: 0.7857\n",
      "\n",
      "Epoch 00033: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 34/100\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1000/1000 [==============================] - 605s 605ms/step - loss: -0.7880 - jaccard_coef: 0.7880 - val_loss: -0.7882 - val_jaccard_coef: 0.7882\n",
      "\n",
      "Epoch 00034: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 35/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.7758 - jaccard_coef: 0.7758 - val_loss: -0.7864 - val_jaccard_coef: 0.7864\n",
      "\n",
      "Epoch 00035: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 36/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7827 - jaccard_coef: 0.7827 - val_loss: -0.7527 - val_jaccard_coef: 0.7527\n",
      "\n",
      "Epoch 00036: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 37/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.7816 - jaccard_coef: 0.7816 - val_loss: -0.7889 - val_jaccard_coef: 0.7889\n",
      "\n",
      "Epoch 00037: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 38/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.7883 - jaccard_coef: 0.7883 - val_loss: -0.7826 - val_jaccard_coef: 0.7826\n",
      "\n",
      "Epoch 00038: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 39/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.7873 - jaccard_coef: 0.7873 - val_loss: -0.7769 - val_jaccard_coef: 0.7769\n",
      "\n",
      "Epoch 00039: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 40/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.7913 - jaccard_coef: 0.7913 - val_loss: -0.7868 - val_jaccard_coef: 0.7868\n",
      "\n",
      "Epoch 00040: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 41/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7902 - jaccard_coef: 0.7902 - val_loss: -0.7694 - val_jaccard_coef: 0.7694\n",
      "\n",
      "Epoch 00041: val_jaccard_coef did not improve from 0.79211\n",
      "Epoch 42/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7903 - jaccard_coef: 0.7903 - val_loss: -0.7941 - val_jaccard_coef: 0.7941\n",
      "\n",
      "Epoch 00042: val_jaccard_coef improved from 0.79211 to 0.79415, saving model to unet/20190604/unet_lesion_042-0.79415.hdf5\n",
      "Epoch 43/100\n",
      "1000/1000 [==============================] - 600s 600ms/step - loss: -0.7913 - jaccard_coef: 0.7913 - val_loss: -0.7923 - val_jaccard_coef: 0.7923\n",
      "\n",
      "Epoch 00043: val_jaccard_coef did not improve from 0.79415\n",
      "Epoch 44/100\n",
      "1000/1000 [==============================] - 620s 620ms/step - loss: -0.7807 - jaccard_coef: 0.7807 - val_loss: -0.7786 - val_jaccard_coef: 0.7786\n",
      "\n",
      "Epoch 00044: val_jaccard_coef did not improve from 0.79415\n",
      "Epoch 45/100\n",
      "1000/1000 [==============================] - 597s 597ms/step - loss: -0.7890 - jaccard_coef: 0.7890 - val_loss: -0.7851 - val_jaccard_coef: 0.7851\n",
      "\n",
      "Epoch 00045: val_jaccard_coef did not improve from 0.79415\n",
      "Epoch 46/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.7911 - jaccard_coef: 0.7911 - val_loss: -0.7973 - val_jaccard_coef: 0.7973\n",
      "\n",
      "Epoch 00046: val_jaccard_coef improved from 0.79415 to 0.79733, saving model to unet/20190604/unet_lesion_046-0.79733.hdf5\n",
      "Epoch 47/100\n",
      "1000/1000 [==============================] - 610s 610ms/step - loss: -0.7942 - jaccard_coef: 0.7942 - val_loss: -0.8002 - val_jaccard_coef: 0.8002\n",
      "\n",
      "Epoch 00047: val_jaccard_coef improved from 0.79733 to 0.80020, saving model to unet/20190604/unet_lesion_047-0.80020.hdf5\n",
      "Epoch 48/100\n",
      "1000/1000 [==============================] - 606s 606ms/step - loss: -0.7868 - jaccard_coef: 0.7868 - val_loss: -0.7694 - val_jaccard_coef: 0.7694\n",
      "\n",
      "Epoch 00048: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 49/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.7857 - jaccard_coef: 0.7857 - val_loss: -0.7733 - val_jaccard_coef: 0.7733\n",
      "\n",
      "Epoch 00049: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 50/100\n",
      "1000/1000 [==============================] - 596s 596ms/step - loss: -0.7997 - jaccard_coef: 0.7997 - val_loss: -0.7605 - val_jaccard_coef: 0.7605\n",
      "\n",
      "Epoch 00050: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 51/100\n",
      "1000/1000 [==============================] - 610s 610ms/step - loss: -0.7837 - jaccard_coef: 0.7837 - val_loss: -0.7720 - val_jaccard_coef: 0.7720\n",
      "\n",
      "Epoch 00051: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 52/100\n",
      "1000/1000 [==============================] - 611s 611ms/step - loss: -0.7965 - jaccard_coef: 0.7965 - val_loss: -0.7907 - val_jaccard_coef: 0.7907\n",
      "\n",
      "Epoch 00052: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 53/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.7937 - jaccard_coef: 0.7937 - val_loss: -0.7871 - val_jaccard_coef: 0.7871\n",
      "\n",
      "Epoch 00053: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 54/100\n",
      "1000/1000 [==============================] - 605s 605ms/step - loss: -0.7940 - jaccard_coef: 0.7940 - val_loss: -0.7847 - val_jaccard_coef: 0.7847\n",
      "\n",
      "Epoch 00054: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 55/100\n",
      "1000/1000 [==============================] - 606s 606ms/step - loss: -0.7961 - jaccard_coef: 0.7961 - val_loss: -0.7807 - val_jaccard_coef: 0.7807\n",
      "\n",
      "Epoch 00055: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 56/100\n",
      "1000/1000 [==============================] - 600s 600ms/step - loss: -0.7983 - jaccard_coef: 0.7983 - val_loss: -0.7866 - val_jaccard_coef: 0.7866\n",
      "\n",
      "Epoch 00056: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 57/100\n",
      "1000/1000 [==============================] - 601s 601ms/step - loss: -0.7944 - jaccard_coef: 0.7944 - val_loss: -0.7999 - val_jaccard_coef: 0.7999\n",
      "\n",
      "Epoch 00057: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 58/100\n",
      "1000/1000 [==============================] - 595s 595ms/step - loss: -0.7968 - jaccard_coef: 0.7968 - val_loss: -0.7868 - val_jaccard_coef: 0.7868\n",
      "\n",
      "Epoch 00058: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 59/100\n",
      "1000/1000 [==============================] - 614s 614ms/step - loss: -0.7982 - jaccard_coef: 0.7982 - val_loss: -0.7936 - val_jaccard_coef: 0.7936\n",
      "\n",
      "Epoch 00059: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 60/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7981 - jaccard_coef: 0.7981 - val_loss: -0.7892 - val_jaccard_coef: 0.7892\n",
      "\n",
      "Epoch 00060: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 61/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.7963 - jaccard_coef: 0.7963 - val_loss: -0.7982 - val_jaccard_coef: 0.7982\n",
      "\n",
      "Epoch 00061: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 62/100\n",
      "1000/1000 [==============================] - 603s 603ms/step - loss: -0.7985 - jaccard_coef: 0.7985 - val_loss: -0.7695 - val_jaccard_coef: 0.7695\n",
      "\n",
      "Epoch 00062: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 63/100\n",
      "1000/1000 [==============================] - 610s 610ms/step - loss: -0.7988 - jaccard_coef: 0.7988 - val_loss: -0.7647 - val_jaccard_coef: 0.7647\n",
      "\n",
      "Epoch 00063: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 64/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.7972 - jaccard_coef: 0.7972 - val_loss: -0.7823 - val_jaccard_coef: 0.7823\n",
      "\n",
      "Epoch 00064: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 65/100\n",
      "1000/1000 [==============================] - 596s 596ms/step - loss: -0.7941 - jaccard_coef: 0.7941 - val_loss: -0.7868 - val_jaccard_coef: 0.7868\n",
      "\n",
      "Epoch 00065: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 66/100\n",
      "1000/1000 [==============================] - 613s 613ms/step - loss: -0.8071 - jaccard_coef: 0.8071 - val_loss: -0.7910 - val_jaccard_coef: 0.7910\n",
      "\n",
      "Epoch 00066: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 67/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.7988 - jaccard_coef: 0.7988 - val_loss: -0.7803 - val_jaccard_coef: 0.7803\n",
      "\n",
      "Epoch 00067: val_jaccard_coef did not improve from 0.80020\n",
      "Epoch 68/100\n",
      "1000/1000 [==============================] - 606s 606ms/step - loss: -0.8028 - jaccard_coef: 0.8028 - val_loss: -0.8123 - val_jaccard_coef: 0.8123\n",
      "\n",
      "Epoch 00068: val_jaccard_coef improved from 0.80020 to 0.81227, saving model to unet/20190604/unet_lesion_068-0.81227.hdf5\n",
      "Epoch 69/100\n",
      "1000/1000 [==============================] - 611s 611ms/step - loss: -0.8048 - jaccard_coef: 0.8048 - val_loss: -0.7941 - val_jaccard_coef: 0.7941\n",
      "\n",
      "Epoch 00069: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 70/100\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1000/1000 [==============================] - 599s 599ms/step - loss: -0.7997 - jaccard_coef: 0.7997 - val_loss: -0.8031 - val_jaccard_coef: 0.8031\n",
      "\n",
      "Epoch 00070: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 71/100\n",
      "1000/1000 [==============================] - 613s 613ms/step - loss: -0.8036 - jaccard_coef: 0.8036 - val_loss: -0.7840 - val_jaccard_coef: 0.7840\n",
      "\n",
      "Epoch 00071: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 72/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.8063 - jaccard_coef: 0.8063 - val_loss: -0.7953 - val_jaccard_coef: 0.7953\n",
      "\n",
      "Epoch 00072: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 73/100\n",
      "1000/1000 [==============================] - 607s 607ms/step - loss: -0.8041 - jaccard_coef: 0.8041 - val_loss: -0.8035 - val_jaccard_coef: 0.8035\n",
      "\n",
      "Epoch 00073: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 74/100\n",
      "1000/1000 [==============================] - 610s 610ms/step - loss: -0.8067 - jaccard_coef: 0.8067 - val_loss: -0.7916 - val_jaccard_coef: 0.7916\n",
      "\n",
      "Epoch 00074: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 75/100\n",
      "1000/1000 [==============================] - 601s 601ms/step - loss: -0.8077 - jaccard_coef: 0.8077 - val_loss: -0.7901 - val_jaccard_coef: 0.7901\n",
      "\n",
      "Epoch 00075: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 76/100\n",
      "1000/1000 [==============================] - 612s 612ms/step - loss: -0.8042 - jaccard_coef: 0.8042 - val_loss: -0.7958 - val_jaccard_coef: 0.7958\n",
      "\n",
      "Epoch 00076: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 77/100\n",
      "1000/1000 [==============================] - 600s 600ms/step - loss: -0.8070 - jaccard_coef: 0.8070 - val_loss: -0.8017 - val_jaccard_coef: 0.8017\n",
      "\n",
      "Epoch 00077: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 78/100\n",
      "1000/1000 [==============================] - 605s 605ms/step - loss: -0.8038 - jaccard_coef: 0.8038 - val_loss: -0.7911 - val_jaccard_coef: 0.7911\n",
      "\n",
      "Epoch 00078: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 79/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.8068 - jaccard_coef: 0.8068 - val_loss: -0.7845 - val_jaccard_coef: 0.7845\n",
      "\n",
      "Epoch 00079: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 80/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.8079 - jaccard_coef: 0.8079 - val_loss: -0.7949 - val_jaccard_coef: 0.7949\n",
      "\n",
      "Epoch 00080: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 81/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.8046 - jaccard_coef: 0.8046 - val_loss: -0.7942 - val_jaccard_coef: 0.7942\n",
      "\n",
      "Epoch 00081: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 82/100\n",
      "1000/1000 [==============================] - 614s 614ms/step - loss: -0.8091 - jaccard_coef: 0.8091 - val_loss: -0.7782 - val_jaccard_coef: 0.7782\n",
      "\n",
      "Epoch 00082: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 83/100\n",
      "1000/1000 [==============================] - 588s 588ms/step - loss: -0.8032 - jaccard_coef: 0.8032 - val_loss: -0.7885 - val_jaccard_coef: 0.7885\n",
      "\n",
      "Epoch 00083: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 84/100\n",
      "1000/1000 [==============================] - 615s 615ms/step - loss: -0.8099 - jaccard_coef: 0.8099 - val_loss: -0.8105 - val_jaccard_coef: 0.8105\n",
      "\n",
      "Epoch 00084: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 85/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.8043 - jaccard_coef: 0.8043 - val_loss: -0.7980 - val_jaccard_coef: 0.7980\n",
      "\n",
      "Epoch 00085: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 86/100\n",
      "1000/1000 [==============================] - 609s 609ms/step - loss: -0.8136 - jaccard_coef: 0.8136 - val_loss: -0.7979 - val_jaccard_coef: 0.7979\n",
      "\n",
      "Epoch 00086: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 87/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.8044 - jaccard_coef: 0.8044 - val_loss: -0.7854 - val_jaccard_coef: 0.7854\n",
      "\n",
      "Epoch 00087: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 88/100\n",
      "1000/1000 [==============================] - 606s 606ms/step - loss: -0.8077 - jaccard_coef: 0.8077 - val_loss: -0.7890 - val_jaccard_coef: 0.7890\n",
      "\n",
      "Epoch 00088: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 89/100\n",
      "1000/1000 [==============================] - 613s 613ms/step - loss: -0.8084 - jaccard_coef: 0.8084 - val_loss: -0.7859 - val_jaccard_coef: 0.7859\n",
      "\n",
      "Epoch 00089: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 90/100\n",
      "1000/1000 [==============================] - 600s 600ms/step - loss: -0.8097 - jaccard_coef: 0.8097 - val_loss: -0.8058 - val_jaccard_coef: 0.8058\n",
      "\n",
      "Epoch 00090: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 91/100\n",
      "1000/1000 [==============================] - 605s 605ms/step - loss: -0.8108 - jaccard_coef: 0.8108 - val_loss: -0.7941 - val_jaccard_coef: 0.7941\n",
      "\n",
      "Epoch 00091: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 92/100\n",
      "1000/1000 [==============================] - 608s 608ms/step - loss: -0.8121 - jaccard_coef: 0.8121 - val_loss: -0.7734 - val_jaccard_coef: 0.7734\n",
      "\n",
      "Epoch 00092: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 93/100\n",
      "1000/1000 [==============================] - 600s 600ms/step - loss: -0.8042 - jaccard_coef: 0.8042 - val_loss: -0.8037 - val_jaccard_coef: 0.8037\n",
      "\n",
      "Epoch 00093: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 94/100\n",
      "1000/1000 [==============================] - 603s 603ms/step - loss: -0.8155 - jaccard_coef: 0.8155 - val_loss: -0.7978 - val_jaccard_coef: 0.7978\n",
      "\n",
      "Epoch 00094: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 95/100\n",
      "1000/1000 [==============================] - 602s 602ms/step - loss: -0.8104 - jaccard_coef: 0.8104 - val_loss: -0.8057 - val_jaccard_coef: 0.8057\n",
      "\n",
      "Epoch 00095: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 96/100\n",
      "1000/1000 [==============================] - 603s 603ms/step - loss: -0.8122 - jaccard_coef: 0.8122 - val_loss: -0.7987 - val_jaccard_coef: 0.7987\n",
      "\n",
      "Epoch 00096: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 97/100\n",
      "1000/1000 [==============================] - 603s 603ms/step - loss: -0.8106 - jaccard_coef: 0.8106 - val_loss: -0.8096 - val_jaccard_coef: 0.8096\n",
      "\n",
      "Epoch 00097: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 98/100\n",
      "1000/1000 [==============================] - 613s 613ms/step - loss: -0.8116 - jaccard_coef: 0.8116 - val_loss: -0.8010 - val_jaccard_coef: 0.8010\n",
      "\n",
      "Epoch 00098: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 99/100\n",
      "1000/1000 [==============================] - 605s 605ms/step - loss: -0.8101 - jaccard_coef: 0.8101 - val_loss: -0.7880 - val_jaccard_coef: 0.7880\n",
      "\n",
      "Epoch 00099: val_jaccard_coef did not improve from 0.81227\n",
      "Epoch 100/100\n",
      "1000/1000 [==============================] - 604s 604ms/step - loss: -0.8134 - jaccard_coef: 0.8134 - val_loss: -0.8058 - val_jaccard_coef: 0.8058\n",
      "\n",
      "Epoch 00100: val_jaccard_coef did not improve from 0.81227\n"
     ]
    }
   ],
   "source": [
    "iterations = 100\n",
    "#Train\n",
    "history = model.fit_generator(\n",
    "    myGene,\n",
    "    steps_per_epoch = 1000, \n",
    "    epochs=iterations,\n",
    "    callbacks=[model_checkpoint],\n",
    "    validation_data=myValGene,\n",
    "    validation_steps=260)\n",
    "\n",
    "model.save(os.path.join(output_dir, 'iter_{}'.format(iterations)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-0.6107564931143226, -0.6550033069745079, -0.7054325568136223, -0.6999673182162706, -0.7454383031021883, -0.7205300679670823, -0.7329898985439907, -0.7610971838063587, -0.7455523654904669, -0.7345910252174804, -0.7326260376183283, -0.7521060301934823, -0.7670871179572419, -0.7735905288530223, -0.7749174477851919, -0.7619428813227799, -0.7499340695521297, -0.7375836102776445, -0.7655971304644509, -0.7550814713710656, -0.7189462371242299, -0.761362816872854, -0.7724368140417257, -0.7512356651828468, -0.7733120325959946, -0.7807955453620941, -0.7660198553334312, -0.7485913684257882, -0.7882773382930167, -0.7921121433405978, -0.7903701177796417, -0.7787803043404985, -0.78569804071691, -0.7881632311725433, -0.7864347313008556, -0.752671525356053, -0.7888938016859323, -0.7826370744461728, -0.7768764460247606, -0.7868089604699313, -0.769362132903009, -0.794146509902096, -0.7923121417877991, -0.7785985181843844, -0.7850517548462789, -0.7973314485797992, -0.8002006708427202, -0.7694468410229867, -0.7733395310237229, -0.7605436057684968, -0.7720024566774424, -0.7906952720271829, -0.7871422603410563, -0.7847176608782054, -0.7807488413043104, -0.786617774437388, -0.7998816014369788, -0.7868377277789088, -0.7936336951678429, -0.789216735402054, -0.7982410013474711, -0.7694567711283641, -0.7647111011751585, -0.7822697232877754, -0.7868392622539763, -0.7910217977270685, -0.7803450802732295, -0.8122656491220801, -0.7940900470480065, -0.8030927154829507, -0.7839680028099545, -0.7953182731921962, -0.8034768015548214, -0.7915677297322047, -0.79006591314353, -0.7957752915476098, -0.8017487136758361, -0.7910902416602724, -0.7844835711294975, -0.7949395109692979, -0.794155790023721, -0.7781840881515789, -0.7885256887113887, -0.8105473456355189, -0.7980426967373703, -0.7978987404376785, -0.7854104783809484, -0.7889978485415207, -0.7858771557465684, -0.8057510320506344, -0.7941142025624397, -0.773357106864395, -0.8036601971224783, -0.7978137519088554, -0.8057075224400485, -0.7986932337169242, -0.8095605249924007, -0.8009900893291068, -0.7879691020745303, -0.8058116611143528]\n"
     ]
    }
   ],
   "source": [
    "print(history.history['val_loss'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 256, 256, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_1 (Conv2D)               (None, 256, 256, 32) 896         input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_1 (LeakyReLU)       (None, 256, 256, 32) 0           conv2d_1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_2 (Conv2D)               (None, 256, 256, 32) 9248        leaky_re_lu_1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_2 (LeakyReLU)       (None, 256, 256, 32) 0           conv2d_2[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2D)  (None, 128, 128, 32) 0           leaky_re_lu_2[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_3 (Conv2D)               (None, 128, 128, 64) 18496       max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_3 (LeakyReLU)       (None, 128, 128, 64) 0           conv2d_3[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_4 (Conv2D)               (None, 128, 128, 64) 36928       leaky_re_lu_3[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_4 (LeakyReLU)       (None, 128, 128, 64) 0           conv2d_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2D)  (None, 64, 64, 64)   0           leaky_re_lu_4[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_5 (Conv2D)               (None, 64, 64, 128)  73856       max_pooling2d_2[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_5 (LeakyReLU)       (None, 64, 64, 128)  0           conv2d_5[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_6 (Conv2D)               (None, 64, 64, 128)  147584      leaky_re_lu_5[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_6 (LeakyReLU)       (None, 64, 64, 128)  0           conv2d_6[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_3 (MaxPooling2D)  (None, 32, 32, 128)  0           leaky_re_lu_6[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_7 (Conv2D)               (None, 32, 32, 256)  295168      max_pooling2d_3[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_7 (LeakyReLU)       (None, 32, 32, 256)  0           conv2d_7[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_8 (Conv2D)               (None, 32, 32, 256)  590080      leaky_re_lu_7[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_8 (LeakyReLU)       (None, 32, 32, 256)  0           conv2d_8[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_4 (MaxPooling2D)  (None, 16, 16, 256)  0           leaky_re_lu_8[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_9 (Conv2D)               (None, 16, 16, 512)  1180160     max_pooling2d_4[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_9 (LeakyReLU)       (None, 16, 16, 512)  0           conv2d_9[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_10 (Conv2D)              (None, 16, 16, 512)  2359808     leaky_re_lu_9[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_10 (LeakyReLU)      (None, 16, 16, 512)  0           conv2d_10[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_5 (MaxPooling2D)  (None, 8, 8, 512)    0           leaky_re_lu_10[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_11 (Conv2D)              (None, 8, 8, 1024)   4719616     max_pooling2d_5[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_11 (LeakyReLU)      (None, 8, 8, 1024)   0           conv2d_11[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_12 (Conv2D)              (None, 8, 8, 1024)   9438208     leaky_re_lu_11[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_12 (LeakyReLU)      (None, 8, 8, 1024)   0           conv2d_12[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_6 (MaxPooling2D)  (None, 4, 4, 1024)   0           leaky_re_lu_12[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_13 (Conv2D)              (None, 4, 4, 2048)   18876416    max_pooling2d_6[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_13 (LeakyReLU)      (None, 4, 4, 2048)   0           conv2d_13[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_14 (Conv2D)              (None, 4, 4, 2048)   37750784    leaky_re_lu_13[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_14 (LeakyReLU)      (None, 4, 4, 2048)   0           conv2d_14[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_1 (UpSampling2D)  (None, 8, 8, 2048)   0           leaky_re_lu_14[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_1 (Concatenate)     (None, 8, 8, 3072)   0           up_sampling2d_1[0][0]            \n",
      "                                                                 leaky_re_lu_12[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_15 (Conv2D)              (None, 8, 8, 1024)   28312576    concatenate_1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_15 (LeakyReLU)      (None, 8, 8, 1024)   0           conv2d_15[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_16 (Conv2D)              (None, 8, 8, 1024)   9438208     leaky_re_lu_15[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_16 (LeakyReLU)      (None, 8, 8, 1024)   0           conv2d_16[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_2 (UpSampling2D)  (None, 16, 16, 1024) 0           leaky_re_lu_16[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_2 (Concatenate)     (None, 16, 16, 1536) 0           up_sampling2d_2[0][0]            \n",
      "                                                                 leaky_re_lu_10[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_17 (Conv2D)              (None, 16, 16, 512)  7078400     concatenate_2[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_17 (LeakyReLU)      (None, 16, 16, 512)  0           conv2d_17[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_18 (Conv2D)              (None, 16, 16, 512)  2359808     leaky_re_lu_17[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_18 (LeakyReLU)      (None, 16, 16, 512)  0           conv2d_18[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_3 (UpSampling2D)  (None, 32, 32, 512)  0           leaky_re_lu_18[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_3 (Concatenate)     (None, 32, 32, 768)  0           up_sampling2d_3[0][0]            \n",
      "                                                                 leaky_re_lu_8[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_19 (Conv2D)              (None, 32, 32, 256)  1769728     concatenate_3[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_19 (LeakyReLU)      (None, 32, 32, 256)  0           conv2d_19[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_20 (Conv2D)              (None, 32, 32, 256)  590080      leaky_re_lu_19[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_20 (LeakyReLU)      (None, 32, 32, 256)  0           conv2d_20[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_4 (UpSampling2D)  (None, 64, 64, 256)  0           leaky_re_lu_20[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_4 (Concatenate)     (None, 64, 64, 384)  0           up_sampling2d_4[0][0]            \n",
      "                                                                 leaky_re_lu_6[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_21 (Conv2D)              (None, 64, 64, 128)  442496      concatenate_4[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_21 (LeakyReLU)      (None, 64, 64, 128)  0           conv2d_21[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_22 (Conv2D)              (None, 64, 64, 128)  147584      leaky_re_lu_21[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_22 (LeakyReLU)      (None, 64, 64, 128)  0           conv2d_22[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_5 (UpSampling2D)  (None, 128, 128, 128 0           leaky_re_lu_22[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_5 (Concatenate)     (None, 128, 128, 192 0           up_sampling2d_5[0][0]            \n",
      "                                                                 leaky_re_lu_4[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_23 (Conv2D)              (None, 128, 128, 64) 110656      concatenate_5[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_23 (LeakyReLU)      (None, 128, 128, 64) 0           conv2d_23[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_24 (Conv2D)              (None, 128, 128, 64) 36928       leaky_re_lu_23[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_24 (LeakyReLU)      (None, 128, 128, 64) 0           conv2d_24[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_6 (UpSampling2D)  (None, 256, 256, 64) 0           leaky_re_lu_24[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_6 (Concatenate)     (None, 256, 256, 96) 0           up_sampling2d_6[0][0]            \n",
      "                                                                 leaky_re_lu_2[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_25 (Conv2D)              (None, 256, 256, 32) 27680       concatenate_6[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_25 (LeakyReLU)      (None, 256, 256, 32) 0           conv2d_25[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_26 (Conv2D)              (None, 256, 256, 32) 9248        leaky_re_lu_25[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "leaky_re_lu_26 (LeakyReLU)      (None, 256, 256, 32) 0           conv2d_26[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_27 (Conv2D)              (None, 256, 256, 1)  33          leaky_re_lu_26[0][0]             \n",
      "==================================================================================================\n",
      "Total params: 125,820,673\n",
      "Trainable params: 125,820,673\n",
      "Non-trainable params: 0\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Continue traing\n",
    "#Use initial_epoch \n",
    "\n",
    "history2 = model.fit_generator(\n",
    "    myGene,\n",
    "    steps_per_epoch = 1000, \n",
    "    epochs=200,\n",
    "    callbacks=[model_checkpoint,tensorBoard], \n",
    "    initial_epoch = 100,\n",
    "    validation_data=myValGene,\n",
    "    validation_steps=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot training & validation accuracy values\n",
    "plt.plot(history.history['jaccard_coef'])\n",
    "plt.plot(history.history['val_jaccard_coef'])\n",
    "plt.title('Jaccard Index')\n",
    "plt.ylabel('Jaccard Index')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train'], loc='upper left')\n",
    "plt.legend(['Validation'], loc='upper left')\n",
    "plt.show()\n",
    "\n",
    "# Plot training & validation loss values\n",
    "plt.plot(history.history['loss'])\n",
    "plt.plot(history.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train'], loc='upper left')\n",
    "plt.legend(['Validation'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.save('unet_lesion_20190520_batchnorm_100_epochs.hdf5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEWCAYAAACaBstRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd4lFXa/z9nJpOekB5SgFBCDT2ggoDS7IBd7H1111V3V3/ru019V1d311Ve3V272MXeCyKigkgJSO8lkJAQUkjvM+f3x5nJJCGBISSZMLk/15XraWee557JdZ3vc5dzjtJaIwiCIAieYPG2AYIgCMLJg4iGIAiC4DEiGoIgCILHiGgIgiAIHiOiIQiCIHiMiIYgCILgMSIagtAOKKVSlFJaKeXnQdvrlVLLTvQ+guANRDSEbodSKlMpVauUiml2fp2zw07xjmWC0PUR0RC6K3uBua4DpdRwIMh75gjCyYGIhtBdeQ24ttHxdcCrjRsopXoopV5VSuUrpfYppf6klLI4r1mVUo8ppQqUUnuA81r47ItKqVyl1AGl1ENKKevxGqmUSlRKfaKUKlJK7VJK3dLo2nilVIZSqlQplaeUetx5PlAp9bpSqlApVayUWq2Uij/eZwtCS4hoCN2VFUC4UmqIszO/HHi9WZungB5AP2AKRmRucF67BTgfGA2kA5c0++wrQD0wwNlmJnBzG+x8C8gGEp3P+JtSaprz2v8B/6e1Dgf6A+84z1/ntLsXEA3cBlS14dmCcAQiGkJ3xuVtzAC2AQdcFxoJyf9orcu01pnAv4BrnE0uA+ZprbO01kXAI40+Gw+cA9ytta7QWh8CngCuOB7jlFK9gNOB32utq7XW64AXGtlQBwxQSsVorcu11isanY8GBmit7VrrNVrr0uN5tiC0hoiG0J15DbgSuJ5moSkgBvAH9jU6tw9Icu4nAlnNrrnoA9iAXGd4qBh4Fog7TvsSgSKtdVkrNtwEDAS2OUNQ5zf6XguBBUqpHKXUP5RStuN8tiC0iIiG0G3RWu/DJMTPBT5odrkA88bep9G53ri9kVxM+KfxNRdZQA0Qo7WOcP6Fa62HHaeJOUCUUiqsJRu01ju11nMxYvR34D2lVIjWuk5r/aDWeigwARNGuxZBaAdENITuzk3AVK11ReOTWms7JkfwsFIqTCnVB/gt7rzHO8CdSqlkpVQkcF+jz+YCXwP/UkqFK6UsSqn+Sqkpx2OY1joLWA484kxuj3Da+waAUupqpVSs1toBFDs/ZldKnamUGu4MsZVixM9+PM8WhNYQ0RC6NVrr3VrrjFYu/xqoAPYAy4A3gZec157HhIDWA2s50lO5FhPe2gIcBt4DEtpg4lwgBeN1fAjcr7Ve5Lx2NrBZKVWOSYpfobWuBno6n1cKbAW+58gkvyC0CSWLMAmCIAieIp6GIAiC4DEiGoIgCILHiGgIgiAIHiOiIQiCIHiMz02/HBMTo1NSUrxthiAIwknFmjVrCrTWscdq53OikZKSQkZGaxWUgiAIQksopfYdu5WEpwRBEITjQERDEARB8BgRDUEQBMFjfC6n0RJ1dXVkZ2dTXV3tbVN8isDAQJKTk7HZZAJVQegudAvRyM7OJiwsjJSUFJRS3jbHJ9BaU1hYSHZ2Nn379vW2OYIgdBLdIjxVXV1NdHS0CEY7opQiOjpavDdB6GZ0C9EARDA6APlNBaH70W1E41jU2x3klVZTWVvvbVMEQRC6LF4RDaVUlFJqkVJqp3Mb2UKbPkqpNUqpdUqpzUqp2zrWJsgrraasumNE44wzzmDhwoVNzs2bN49f/vKXrX4mNDQUgJycHC655JJW73uswYzz5s2jsrKy4fjcc8+luLj4KJ8QBEFoGW95GvcBi7XWqcBiGq161ohcYILWehRwCnCfUiqxowyyWiwE+FmxVhVBwU5o53VG5s6dy4IFC5qcW7BgAXPnzj3mZxMTE3nvvffa/OzmovHFF18QERHR5vsJgtB98ZZozAZece6/Asxp3kBrXau1rnEeBtAJtgb7Wwm0l0JtOdSUteu9L7nkEj777DNqasxXyszMJCcnh1GjRjFt2jTGjBnD8OHD+fjjj4/4bGZmJmlpaQBUVVVxxRVXMGLECC6//HKqqqoa2t1+++2kp6czbNgw7r//fgCefPJJcnJyOPPMMznzzDMBM9VKQUEBAI8//jhpaWmkpaUxb968hucNGTKEW265hWHDhjFz5swmzxEEofvirZLbeOc6ymitc5VScS01Ukr1Aj4HBgD3aq1zTvTBD366mS05pS1eq7c7sNorUQCWYvAL9OieQxPDuf+CYUdtEx0dzfjx4/nqq6+YPXs2CxYs4PLLLycoKIgPP/yQ8PBwCgoKOPXUU5k1a1arSeann36a4OBgNmzYwIYNGxgzZkzDtYcffpioqCjsdjvTpk1jw4YN3HnnnTz++OMsWbKEmJiYJvdas2YN8+fPZ+XKlWitOeWUU5gyZQqRkZHs3LmTt956i+eff57LLruM999/n6uvvtqj30MQBN+lw97elVLfKKU2tfA329N7aK2ztNYjMKJxnVIqvpVn3aqUylBKZeTn57fZZovCCAYKHPVAx4WoXKEprTV/+MMfGDFiBNOnT+fAgQPk5eW1eo8ffvihofMeMWIEI0aMaLj2zjvvMGbMGEaPHs3mzZvZsmXLUe1ZtmwZF154ISEhIYSGhnLRRRexdOlSAPr27cuoUaMAGDt2LJmZmSfy1QVB8BE6zNPQWk9v7ZpSKk8pleD0MhKAQ8e4V45SajMwCTgiuK+1fg54DiA9Pf2oPf3RPAJdWYQq3sdh/0Qia3MgPAlCW3SC2sScOXP47W9/y9q1a6mqqmLMmDG8/PLL5Ofns2bNGmw2GykpKccc+9CSF7J3714ee+wxVq9eTWRkJNdff/0x73O09eEDAgIa9q1Wq4SnBEEAvJfT+AS4zrl/HXBEIF8playUCnLuRwITge0daZSqq8SBosgRDLYgqDrcrvcPDQ3ljDPO4MYbb2xIgJeUlBAXF4fNZmPJkiXs23f02YknT57MG2+8AcCmTZvYsGEDAKWlpYSEhNCjRw/y8vL48ssvGz4TFhZGWdmROZrJkyfz0UcfUVlZSUVFBR9++CGTJk1qr68rCIIP4i3ReBSYoZTaCcxwHqOUSldKveBsMwRYqZRaD3wPPKa13tihVtVVUm8JpLLWQa1/D6irhPqaY3/uOJg7dy7r16/niiuuAOCqq64iIyOD9PR03njjDQYPHnzUz99+++2Ul5czYsQI/vGPfzB+/HgARo4cyejRoxk2bBg33ngjEydObPjMrbfeyjnnnNOQCHcxZswYrr/+esaPH88pp5zCzTffzOjRo9v1+wqC4Fuoo4UoTkbS09N183ELW7duZciQIUf/oNZwcAOOoCi2V/XAX9XT37GP+pCe+PVI6ECLT248+m0FQejyKKXWaK3Tj9VORoS7sNeBxYbFP4ReUcFU1Fuo0AHUlxdSb3d42zpBEIQugYiGCz9/iB8KQZGEBviRGh+GDoomUNVRU1bobesEQRC6BN1GNDwOwzkrk4JsVkIi46gigIDKXGcJrtAYXwttCoJwbLqFaAQGBlJYWHjcnZxSilL/nlixo8vbPv7DF3GtpxEY6NkASEEQfINusQhTcnIy2dnZtGXgX1WtnYOVh/GzFmMJk0n+GuNauU8QhO5DtxANm83W5tXlKmrqefnhx7jd8gmW+zIhMLx9jRMEQTiJ6BbhqRMhJMCPmuTTsWDHvneZt80RBEHwKiIaHjBs/HSqtY2D6xceu7EgCIIPI6LhAVOG9eJnBmPZ+z04ZMyGIAjdFxENDwi0WSnoOZmEmr3UPJJC/cYPvW2SIAiCVxDR8JDhF9/HP0N+x4GaIA598TdvmyMIguAVRDQ8JCUunHvu+TNbEi4ksWoHxbl7vG2SIAhCpyOicRwopRg21UxpvmHxW162RhAEofMR0ThO+g4ayQG/XgTs/oqSqjpvmyMIgtCpiGi0ATXoHMY4NnPlUwvZdajc2+YIgiB0GiIabSBx3Bxsys7AqvX872dHX4dbEATBlxDRaAvJ48AWzNzYPazYU0hVrd3bFgmCIHQKIhptwc8f+kwgrfpnrPWV7Pn2RRn0JwhCt0BEo630O4Pg0t08FfBfhq24F/bJvFSCIPg+Ihptpe8UAKYrsx55ze5lsiiRIAg+j4hGW4lPg+AYyoIS2elIIuP7z/jN2+u8bZUgCEKHIqLRViwWmLsA6zUfUNN7Eul+u/hmUzYVNbIsrCAIvouIxonQaxzBiUNIO+0cAnQNqfbdfLddloUVBMF3EdFoD/pMAGBK4C6+2nzQy8YIgiB0HCIa7UFoHEQP4KzQ3Xy7NY/qOhm3IQiCbyKi0V70OoUBtduoqK3n6hdWsr+w0tsWCYIgtDsiGu1Fcjq2miKeOz+K7XllXP3iSvE4BEHwOUQ02ovkcQDMDM9m4cBPebb8TtYs+F9wiHAIguA7eEU0lFJRSqlFSqmdzm3kUdqGK6UOKKX+3Zk2HjexQ8AWAts+I3HXWyT5lTJx9zxKl7/gbcsEQRDaDW95GvcBi7XWqcBi53Fr/BX4vlOsOhGsfpA0BrZ8DI56SuZ+ylZHbyp+mu9tywRBENoNb4nGbOAV5/4rwJyWGimlxgLxwNedZNeJ4QxRkTKJXqkj2BQ/i4SKrVRmrfeuXYIgCO2Et0QjXmudC+DcxjVvoJSyAP8C7j3WzZRStyqlMpRSGfn5Xhxc1/tUs02/AYDBM2+mRvuR8/mjUFnkPbsEQRDaiQ4TDaXUN0qpTS38zfbwFr8EvtBaZx2rodb6Oa11utY6PTY29sQMPxFSZ8J1n8KwiwAYntqXH0JmMODgF+h/DoDNH3rPNkEQhHbAr6NurLWe3to1pVSeUipBa52rlEoADrXQ7DRgklLql0Ao4K+UKtdaHy3/4V2Ugr6Tm5yKvfw/XPjs6/w74i2SPr0bep0K4QleMlAQBOHE8FZ46hPgOuf+dcDHzRtora/SWvfWWqcA9wCvdmnBaIVRfaIZfso0rim+GUddNXxxj7dNEgRBaDPeEo1HgRlKqZ3ADOcxSql0pZTP1ajec9Yg8vyS+SFiNuz4CuqqvG2SIAhCm/CKaGitC7XW07TWqc5tkfN8htb65hbav6y1vqPzLW0fwgNtzBqVyLuHksFRDwc3etskQRCENiEjwjuJueN7s7qunznIzvCuMYIgCG1ERKOTGJ7Ug5iEPuQRTf725d42RxAEoU2IaHQSSikemDWMrZZUKvas4r012d42SRAE4bgR0ehExveNYuKUs0ix5PH6krU4HNrbJgmCIBwXIhqdjK13OgARRRtZsr2l4SmCIAhdFxGNziZxDNoWzCWBGfz3u93U1MvU6YIgnDyIaHQ2AaGoUVdyDkvZty+Tuc+tIL+sxttWCYIgeISIhjc45XasjjreGr2RzTmlPPjpZm9bJAiC4BEiGt4gZgAMPIfUvW9wb7qNzzbksulAibetEgRBOCYiGt7irIfB4scNmfeQEljJ37/ahtZSTSUIQtdGRMNbRPeHuW9jLc3mqT4/sHRnAf/zwUbsUoYrCEIXRkTDm/QaB30nkVa+nF9PHcCC1Vk8+8Nub1slCILQKiIa3mbQuajCXfxujIX0PpF8viHX2xYJgiC0ioiGtxl4ltlu/5KpQ+LYnFNKXmm1d20SBEFoBRENbxPRG+KHw7bPmDbILJW+ZJuMFBcEoWsiotEVGDYHslYy8KOz+VPoJ+xdt4TDFbXU2x3etkwQBKEJHbZGuHAcTLwbwhNRK/7LjfVvow+8zdSH6pk64VTuv2CYt60TBEFoQDyNroDVD0ZdCbctI/ua5ViV5ubIn/lsQ67MhCsIQpdCRKOL0bv/UOh9GrOtP5FfVsO67GJvmyQIgtCAiEZXJO1iwst2MdSaxaIted62RhAEoQERja7I0DmgrPwyMoOvNx/0tjWCIAgNiGh0RUJjYcj5zKz+kvz8Q+w6VOZtiwRBEAARja7LpHvwry/nBr+FfLIux9vWCIIgACIaXZeEETDoPG61fcXX63bLDLiCIHQJRDS6MhPuIESXM7B4GY99vZ2rX1gpo8UFQfAqIhpdmV6n4ghNYLbfCv6zZDdr9x/mhpdX88+F27xtmSAI3RQRja6MxYJl+MWcYV3Pvy7ozdo/z+COvgdZvXwJ1XV2b1snCEI3xCuioZSKUkotUkrtdG4jW2lnV0qtc/590tl2dgnSLsKq67k4eD2B5Vn85tAf+Z1+WcJUgiB4BW95GvcBi7XWqcBi53FLVGmtRzn/ZnWeeV2IxDEQnQpf/wnevR6rvYpUSw4fS0WVIAhewFuiMRt4xbn/CjDHS3Z0fZSCq96B0J6Q8zPEDiGKUtZu301JZZ23rRMEoZvhLdGI11rnAji3ca20C1RKZSilViiluq+wRPWDmxfB3AUw/QEA+ugcrn95lQiHIAidSoeJhlLqG6XUphb+Zh/HbXprrdOBK4F5Sqn+rTzrVqe4ZOTn57eL/V2OgDAYdA7EDgLgL6f6sflAKb9e8LOXDRNapE5WXxR8kw4TDa31dK11Wgt/HwN5SqkEAOe2xayu1jrHud0DfAeMbqXdc1rrdK11emxsbId8ny5DRG+wBjA8II+7pqfyw458dueXe9sqoTH52+FviVCw09uWCEK7463w1CfAdc7964CPmzdQSkUqpQKc+zHARGBLp1nYVbFYIXoAFOzk0vRk/CyKBav2e9sqoTEl2aDtUHrA25YIQrvjLdF4FJihlNoJzHAeo5RKV0q94GwzBMhQSq0HlgCPaq1FNABiUqFgB3Eh/swcGsd7a7Jl3EZXwlFvtvZ679ohCB2AV5Z71VoXAtNaOJ8B3OzcXw4M72TTTg5iBsLWT+DF6fyrJJ9fV1/K6ysGcPOkft62TACwO4sTHFKkIPgeMiL8ZCRmIGgHHNpKYEAAL/j/i2Vfv8feggpvWyaAWyzsIhqC7yGicTLSfyqkXQI3fIG6bSnaGsCZ1vX8+q21HK6o9bZ1gissJZ6G4IOIaJyMhETDJS9C4miwBaGSx3FhZCY78sq59FmztrjgRSSnIfgwIhq+QMrphBdv4fWrBrO3oIIXl+31tkXdG4fkNATfRUTDF0g5HbSD8dYdTB0cx3trsqitd3jbqu6LXXIagu8iouELJI8DawBkLuXK8b0pKK/lm6153raq++IKTzkkPCX4HiIavoAt0AjH1k+Z3NvGvaFfob+8D4dDloj1CuJpCD6MiIavMOVeKDmA9enT+FX9q5xX+RH//my5t63qnkhOQ/BhRDR8hX5nwEXPQnkeur8ZN7lnxWd8sl7W3eh0GqqnRDQE38Mj0VBK9W80D9QZSqk7lVIRHWuacNykXQz/by/qqvfQwTHMDt3Ko19slSlGOhu75DQE38VTT+N9wK6UGgC8CPQF3uwwq4S2ExQBFguq/5lMtGwgt6SSl36UEtxORUaECz6Mp6Lh0FrXAxcC87TWvwESOs4s4YTpPw3/6kKu71fGvG928k5Glrct6j7I3FOCD+OpaNQppeZipjH/zHnO1jEmCe3CgGlgsfEHNZ9JvQP4f+9tEOHoLGREuODDeCoaNwCnAQ9rrfcqpfoCr3ecWcIJExoHF7+ALWcNL/j9k8FxQbyXke1tq7oHDZ6GiIbge3g0NbpzHYs7wSyOBIRprR/tSMOEdmDYHKgpQ31yB78dsJZfbB7CobJq4sICvW2Zb+OQCQsF38XT6qnvlFLhSqkoYD0wXyn1eMeaJrQLo6+G5PFMPfAMIbqSrzfn8d3mLA6VVnnbMt9FEuGCD+NpeKqH1roUuAiYr7UeC0zvOLOEdkMpOOdR/Kry+Vvou7zy+XcMe2cCa+b/ztuW+S5Sciv4MJ6Khp9SKgG4DHciXDhZSBoLE+9iVv1CXrPcT6wq5cyidyjI3edty3wT8TQEH8ZT0fhfYCGwW2u9WinVD9jZcWYJ7c7Uv6B7T6CnOkz+pIfww86Bzx7xtlW+iZTcCj6Mp4nwd4F3Gx3vAS7uKKOEDsDqh7rqHSjcRWziaL7N+IGJB97j7nmnMeH0qVyW3svbFvoOUnIr+DCeJsKTlVIfKqUOKaXylFLvK6WSO9o4oZ0JCDOr/QGBZ/8vxaoH9xU/yJuLV8qMuO2JVE8JPoyn4an5wCdAIpAEfOo8J5ykTBg5hPhbPyTWUs4lZW+yKrPI2yb5DjI1uuDDeCoasVrr+Vrreuffy0BsB9oldAYJI6D3qYyyZvL+Ghn4127IIkyCD+OpaBQopa5WSlmdf1cDhR1pmNA5WBOGM8iSxVcbsykor/G2Ob6BeBqCD+OpaNyIKbc9COQCl2CmFhFOdnoOx6Zr6eXI4RevrZFp1NsDWYRJ8GE8Eg2t9X6t9SytdazWOk5rPQcz0E842YlPA+DhCbBm32EeX7TDywb5AOJpCD7Miazc99t2s0LwHjEDwerPaFs25wwMY8lmyW2cMA6ntyY5DcEH8WicRiuodrNC8B5+/hA7CPYt5x8F7/B1RT/ySidRu+IFCAij15TrvG3hyYeMCBd8mBPxNNpc2K+UilJKLVJK7XRuI1tp11sp9bVSaqtSaotSKqWtzxSOQs8RkL2KsOoczrOsZPX6DcQufxD7t39jzb7D3rbu5ENGhAs+zFFFQylVppQqbeGvDDNmo63cByzWWqcCi53HLfEq8E+t9RBgPHDoBJ4ptEbP4QA4Bp1PoKoj+ds7CaSWFHWQ++Z/xYFimRH3uGgouZWiAsH3OKpoaK3DtNbhLfyFaa1PJLQ1G3jFuf8KMKd5A6XUUMBPa73IaUu51rryBJ4ptMbIK+CC/8Ny2SvkW3sySm+lhDAA0uo38fwPe47vfrkbYPFfQXfTUeaSCBd8mBMJT50I8VrrXADnNq6FNgOBYqXUB0qpn5VS/1RKWVu6mVLqVqVUhlIqIz8/vwPN9lGCImHs9WD1IyvpHAA2p94GAT24PCaTBav3U1RR6/n9Nr0PSx+DmtKOsberIyW3gg/TYaKhlPpGKbWphb/ZHt7CD5gE3AOMA/oB17fUUGv9nNY6XWudHhsrA9VPhKSZv2ZFj/MYdt4voc8ExuhNVNc5ePaH3WhPPYcq55QkZXkdZ2hXRiYsFHyYEwkxHRWtdauLNDknPUzQWuc61+loKVeRDfzsnFEXpdRHwKnAix1isABAfHJ/4n/zpjlIOR3/HV/yUJ91PPJ9FRuzS/jvVWOICPY/+k0qXaKRC7EDO9bgrohdJiwUfBdvhac+AVy1nNcBH7fQZjUQqZRyuQ5TgS2dYJvgYugsCEvk6rx/8E3ic6zYU8jzSz3Ib7hEo7y7ehqS0xB8F2+JxqPADKXUTmCG8xilVLpS6gUArbUdE5parJTaiBkX8ryX7O2eRPSG32yCiXeRULSKCwf68+bK/ceeaqTSOS1ZWW7H29gVaVxy212LAQSfxSuiobUu1FpP01qnOrdFzvMZWuubG7VbpLUeobUerrW+Xmt9HNlYoV2wWGHYRYDm9qS9HK6s45N1OUf/TENO42CHm9flcNgBDRZbo2NB8B285WkIJxMJIyEsgf7FPzK4Zxgv/bgXrTWr9haxYNX+pm21bpTT6Iai4fIybMFmK3kNwccQ0RCOjVKQOgO1+1tuPC2JbQfL+HFXIb97dx1//GhT0ynVq0tAO9+uu6NouCqnbIFmK3kNwccQ0RA8Y+DZUFPKnKgsIoNt3LXgZ7KKqrA7NJ9vaJS7cOUzlKV75jRcnoUtyHksZbeCbyGiIXhG38lg8cN/33dceUpvCitqGZYYzuCeYXy87oC7XZVzrqqo/qZ6qrslgl3ltq7wlHgago8hoiF4RkAYJI+H3Uu49rQUUqKDue+cwcwelcTa/cXsL3TO8OLyNOKHQl1l66PCD6yBvyVByYGWr5+sHOFpiGgIvoWIhuA5/c+E3PXE+1Xy3b1nMik1llmjErEoeGPlPtPGlQR3Lu7UJK+RvQaePh1qyiDnZ6gth0M+NvSmeSJcPA3BxxDREDyn35mAhj3fNZxKighi9qgk3vtpKwU5exs8jSxbimnQWDT2fgd5GyF/O5Q6y3ZLfGzRp4ZEuOQ0BN9EREPwnMTRENADMl6C7/7e4FX8MWE1X1vuJPjFKdjL8rBj4YbPnGGpxqJxONNsS7J8XzT8pHpK8E06bO4pwQex+kHqDNj0HmQuNXmOIecT8+09lPjHElyXz7aVXxCtQ8l1RJjPNK6gOuwMYZVkQ+kB974vIeM0BB9HPA3h+Jj9b7hrA4T2hNx1JqENBM95HIDBjl2o4Cj6JsVTZImCbZ+Dw2E+6/I0iht5GqW+ngiX8JTgW4hoCMeHLQgi+0DiKMhZZxLaVn9sg86G8GQAYmITmTUykb/VXArZqyhY+oIpRXV5FU3CU1le+iIdhL1ZTkOmRxd8DBENoW0kjoaCHZC5zFRK+flD71PMteAozh+RyHv2yax0DMbv2wfI3bPRPVI8b7Mpx/ULMiW3Lk/EF5CSW8HHEdEQ2kbCKECb8FTiaHOul1s0EiOCeOLyURSOvoMIVUHWEucyKNGpUOzMbSSNMZ1qhQ8t/W5vJhqSCBd8DBENoW0kjmq030w0gqIAuHB0MueedzF12BiQ41wyJeV09+d6jTdbXxrg11A9JTkNwTcR0RDaRlhPkwwHt2jEp0HfKU2FwT+Y0tgxRFGKQ1ndwgLufV/KazQfpyGehuBjiGgIbSdxtBmPEDvYHFv94LpPTFluIyLSZgJwQMewuSrSeVZB0liz60tlt1Jy6zmf3gXL/+1tK4TjRERDaDtT7oVZTxmxOArWAVMBOGSN57ZP883J0HgIiQVbiG+V3TZPhIun0To7v4F9y71thXCcyOA+oe0kjXV7C0cjYSSE9iRt0KmE7UqmvthCXVAcQUpBj2Qo3n/se5wsNJ/lVnIarVNTaqrohJMKEQ2h47FY4dYlBASE88IkK3nzYthZFMKY6jrCI/u4R4r7Ag2ehkwjclQcDjNxZV2Vty0RjhMJTwmdQ3giBISSGBFE2XnP8NeqS/n9extwRPaDot2+s+6G5DQ8o7Yc0FAvonGyIaIhdDqDx03j8rPP4MtNB3lyvTYhCl9Z5e+I6ikJT7Vm47FNAAAgAElEQVSIa50V8TROOkQ0BK9wy6R+PHP1WHKtiQA89tYXFDZea/xk5Yip0cXTaJFqEY2TFRENwSsopTg7rScP3TQHgOLsbVzw1DI2Zpd42bITRBZh8owGT0MS4ScbIhqCV7FF9gKrP3eNsqCUYu7zK/h5/2EozYWCnd427/iRuac8QzyNkxYRDcG7WKwQ1Y/YugO8f/sEokP9ufalVVS/fQO8dYW3rTt+7M2mEZGcRss09jR8pQiimyCiIXifqP5QuJueFdt45zwbEbUHCTzwExTu4t43l5OR6Vx3fMM7UJ7vXVuPhcuzsNpAWWWcRmu4RAOgvtp7dgjHjYiG4H2inWW3r1xA/EeX80Dk1w2Xtm/M4MaXV7Nn5xb44BZ474auPZW6o96IhVJGOCQ81TLVjURDQlQnFV4RDaVUlFJqkVJqp3Mb2UKbM5VS6xr9VSul5njDXqGDieoP9lqzrzXTKj4jW8cAMCWigACblefe+9xcz1wKK5/xkqEeYK8zYgFgsUl4qjUaexqSDD+p8JancR+wWGudCix2HjdBa71Eaz1Kaz0KmApUAl83byf4AImjAAXnPwHT/gLAM/ZZVGsbc5JKeHDWMMLK9wCQGzGW2oX3o7vqKHJHvRELMHNyiafRMuJpnLR4SzRmA684918BjuVBXAJ8qbWWVxJfJHE0/D4Thl8C42+FK98lt99lZFp60dexn5lD4xkRkEex6sEV+Tdg11D26R+8bXXL2OvcEzhabFJy2xo1Ze59EY2TCm+JRrzWOhfAuY07RvsrgLdau6iUulUplaGUysjP7+KJUqFlgiLM1mKBgTP51xVj6TM4HUv+VvysFtJD89lmT6TAGsvT9bMI3/OZWWq2q+GoA4tTNLpTTsNhh0/vhkNbPWtfI57GyUqHiYZS6hul1KYW/mYf530SgOHAwtbaaK2f01qna63TY2NjT9R0oQsQEexPUHKamV6ksoj4mn1kW3vxlwuG8m305ZRaesCal6moqeesJ37gleWZ3jbZYG8UnrL4dZ+cRukBWDMftn7mWfvqUre4Sk7jpKLDRENrPV1rndbC38dAnlMMXKJwtEWiLwM+1Fp3k1c2oYG4oWa793ssNSVcctY0Lh/Xm1MHJrOwfjR6x1c88+1WtueV8fbqLrL6n6PeHZ7qTp5GRYHZejqHWE0JhDgDDN3V09j8IXzVRcOsR8Fb4alPgOuc+9cBHx+l7VyOEpoSfJiEkeat/btHzXHsQACmDIrli/pxqJoytiz/jB5BNrbklpJVdJQ31jWvwMb3Ot5mR10zT6ObiEZlodl6KhrVpRAWb/a7q6ex9VNY+6q3rThuvCUajwIzlFI7gRnOY5RS6UqpF1yNlFIpQC/gey/YKHib0DiYcAfkbzPHMYMAGJcSxa6QMZTpIM62rOa5a8xCUIu25AGQV1rNf5bsot7uHM9RUwZf3QffPNDxo4+bl9x2l8F9Lk+jNMez9jWl7jXmu6unUVEAtWVQX+ttS44LryzCpLUuBKa1cD4DuLnRcSaQ1HmWCV2OyffCxveh6rBZkwMItFn59r6zcbx7Nhfv+wFLkj/XRm1l2nd/hO3xvFNzLv/aP4BhieGcMSjOhAHqKqGkEg5tgfhhHWdv85Lb7uJpVDgLUDzxNLQ2Qh7azcNTLu+sutj9W5wEyIhwoWvjHwJXvA5z/mtGWTuxWS0ETLgdS/Vh+OAX/KFmHrquktLcncw8+Byg+XyDswP7+Q0Id7577PjKs+fuX2nCYp56JgW74KWzoSTbzKcFTk+jzm3Dtw97dq+TkUqnp1F+6NjJ/7oqI65hLk+jm4anXN5ZZZF37ThORDSErk/CSBg668jzvU+BSffA9s8JsDp4ttdjPFI1h0GWbH41sIyFmw9Se3ArZK0w4z8SRsGOVovwmrLqOfjukZbbOxzw7GRY/L/uc5lLYf9PcHCDOzxlbTQi/OfX4Md5UNtKB7nlEyjL88y2rkiF860ZDeXH+B6uctsQZ6Vjd/Q0tHZ7GlUiGoLQeUz5PYy7GXXxS/ztpguYctEvcFgDmOv/AxXVNVS8cxs6IAxGzoWBZ0PWqkYd3FHIXW+2i/5y5Jvz/uXm+srn3IPUihuNULc0Fg1nvLpgh9nPWmGOtYaljxvPpK4K3rkWlv7rSDtqTpKYt8vTgGOHqFyjwYMiwS+we3ga9TWw8I9ur6Km1O2FiqchCJ2I1Q/O+xcMOtss7DR2EJahs0jK+pSXAx8nsmgdv6m4jpc3VKIHngVoPnx3Pn/8cGPr96wph8JdkDgGCrbDutebXl/3phGG2jLY8LY5V7wflMVtE0B4MhTtMZ2C661y7w9mW5IFix80+ZbqEkDD3hbqPV6YAd/+tWU7D++DJ0ebrbepKIBgM1/YMZPhLk8jINysO9IdZrk9sAZ++jfsWmyOKxqJbNVh79jURkQ0BN/j1NtRYYmc6r+Hjb2uomzAHB74dAv/2BBIfXAc/ru/5q1V+8krbaWzytsEaJjy/6DXqbDkb0ZIwGw3fwQjrzDTn6x63ngNh/dBn4kQ2dd0hgAJI8wbeOZSc2yxwR6nMLg61qpip2hgqsTKDrrtcNiNaOX83LqdRXsge3Wbf6p2o7IAeg43+8fyNBpEI8yscNgdPA3X/9vlkVU28nZPsvCUV6qnBKFDSRoLd6zChplK4HmH5o8fbeTp7/cyMnwUky1Lsela1n81nwlnXU61NYSY0AD3512hqYSRMPOv8OIMWPRnU721YyHUVcCoK03I6dO7zNQZxftg0Dlw4TPu8FTPEWa76X2zHTbH7FcVuzuR6hK3aIDxREZcZvYrC0E7Wl/B0PWGWrz/RH+xE6eiwIT/Mpd5Hp4KdHoa3SGn4XoZcFWZNfY0JDwlCF0Li0XxwKxhDEsM5/3yNMJUFe+FPcHMLfdxeN4Efv/kK9RWlcN7N8LzU01COyQWwhKg13gYOhsyXoJvHzKx6ekPQO/ToPcE84B9P5rOIKIP9Eh2D1pzlfbuWGiEZPQ1RgT2LXd3rNXFTUVjT6MQlaujKT/ozp3U15qQltbtIxplB93eUlupq4bacgiJMb9Z6TFEo/SA2YbEdSPRcP4mLtFo8DSUhKcEoSsS4GflP1eOISJtOtoawPC69SyyjyHAUc2LtffieGI4etMHJva8+UPjJbhKfM+fB1e8CffuhtuWwum/MdeiB4B/KGz9xLSL6NP0oYHhENXPxOyj+kHSGHM+f2vLnkbsENjznXuRqcZVSIW7zXbLR/Du9cYbag/RWP0ifHGPuyNviepS+OJe4yG1hCvkEhwD4QlQdoycRnYG9OgFobHdJzzV4Gm4wlPObUSvI8NT27801Xnbv+w8+44DEQ2h25ASE8I/r5yIGnQ2jp4j2THpSep+8SPPB93Ijvp4/hJ4H29ZLjCNE0a6PxgcBYPPM2/SjbFYTDvXbLuRzUQD3CGqmFQTww+NN3mIJjkNZ2c89joozTYT/0Ez0dhltq7QWXley6Kx4hn48ojlaVrn4AazLTmKaOz5zpQgb2plGhZXRxgSY8ZeHMvTOJBhQojQjTyNZqJRUWDWkQ9PhspmnsaGd8z/+a0rYM3LnWqmJ4hoCN2PS+ZjuWUxv5o5nKTEJOLOuodZlX/m/cpRPFB5MbtSruStmtO44KlllNccY6Ba4mgTcgKI6H3kdVdyOCbVbKP6Q+GelsNTY2+AfmfAovtNJ96QFFdu0cjbZLYV+W7RKMlyh5fWvgobFnj+W+S6ROMoEz4ezjTb5mNWtIZ1b8HhveY4OAbCEs13ayncpbVZ4714PySnm3MuT+PnN2DTB+62Djv89B+orfD8u7SFjp5WxkVL4amQGFN23NzTyFoFQy4wob79KzrHvuNAREPoflis7gF4wHnDE/jrnDQW3j2Z3nFRXJ93KX/6sZ6NB0p45IutPLl4J9e8uJKaevuR90oYZbZ+gcaLOOK602OJdomGcz10VzjIFZ7yCwRboAmF2Wtg5dPGmwjoYUI5hbtMB3fQJRoFbtGorzYjsWvKTeir6nDTlfFaozzfHUo6WnjKJQp7vm/aie9fAR/dBgv/ZI5DYk1Op7a8aZ4GTMjvn/1NeA0gySUaTk/j+7/D8ifd7Q+sgYV/8HwEf1v47DfGpi/+X9NFobZ83H6zz9rrzf/tiPBUIQRHQ3Bk05xGSbbxNvucbn5LT+fy6kRENIRuj5/VwjWn9qFXVDDXT0wh+3AV0SH+XJ7eizdW7ufxRTtYurOAzzfkUlJVx/JdjSpfEkebbY9eTaY5aSBlEky8Gwafa46j+xkxaF5yG9jDHEf1NVPCH9xk2oXFQ3R/Ixrlee5YuMvTcFVqFe8zIQ2X1+NJnuPgevd+SXbr7Q5ngtXfiJlrnAnArkVmW+r8bEi06ehaut+Or01HufCPoKxuMbUFmfPF+6Bor7u9q5NtXILc3uT8bEbor3oWdn3jPr/2VVjxH3ceqa0c2gZ/SzCFD3UVxquoLTMiWVFgRCMoylRPuTyerFVm22u88TQ8nTW4ExHREIRGXDg6ibOH9eSJy0fxwKxhzBgazwMXDGVAXCgvLtvLba+t4coXVrI+q5h1WcVc93EBDv+wlkNTYLyHGQ+aDgNMeArM3EuhPU1HXJbnFg2AuCHOMRt5xnuJSTVzW7m8DDAdbdVhiHeuOVK83+QKXBR7MODPFZoKT2qa0yjNafr2W7QXUmeCf1jT5OzORdDD+b0tfhAY0bpoZK92Ln9bY6rK/IOdv0+w+1nVxe7yU1c+pyNFo6IQ+jgr4MobLemTt9lsN757YvfP22RmAXBNf+4KVVYUGPEPiTH5MnuNuxgga5XJdfQcbkq8j5Uf8gIiGoLQiGB/P565ZiwTB8QQ5G/l+WvTuX5iX26YmMLmnFJ+2lOIn0Xx6k/7eOizLXy/s5BnAm4kf/hNLNl+CIfjGDHy6P7u/bghZlu8/0jRKMs140BC402VVm0ZrH/TXI/q5/Q0it2J9uJ9JqQTGOG+p4udi1oOVx3cYMQufljTnMars+GDW82+vd5cixkIA88y4aXaCiNoBzeY5P3As41YKNVINBrdr7IICnfCxLsgMgX6n+m+5hfY1CZXKMwlGuV5JnT0wnT45kH3IMv2oLLAfC9ldYtGRaH77X7DO6ao4G9JMG+4GdR5LLR2//aukN+2z83W9b+qyDfPCY5xv0y4hDNrpSkSsNqMp1Fb5lmosRMR0RAED7hodDLJkUFcfWpv5o7vzYc/Z5Ox7zDTBsfxj/xTGLcAbpi/mie/dQ/E01qjmydaI/u6910rExbvayoasU4xqSoy1UhD5xivZNP7JgwWPcC8gdeUmuPgaKensRb6TwVbiHtqkbI8eOMS+LnZVChgPI2EkcbTcHVwFQVGrHYuguIsc95Rbzr78beYUNr6BbDbOR1G6gy46Dm41ll2HBJnPIrGnsaBtWbbbwr8ahVMf9B9zRbc1KaiZqJRdhDythhPZdnj8NqcI7+HJ9TXmlyFq5y5ttK83YfGmlyM63mHnF7GsAtN7mnl0zBgmhnl/9EvjRey9dOmHtDhfaYk2V5npoKZNwLyd7i9t1pnvsTlaZRkmXBViDM8BUZYqw4bIe413pxzLgXQ1UJUMiJcEDwgyN/KknvOwGa1sCOvjNdW7KNneCD/uWoM72RkUVJZx85D5cz7Zicp0SFMHxrPLa9koNG8dtMp2KzO97OAUCMA5QchbrA5V1t+pKfhIjTO5DWueBNePtd08gHhsNc5NUlwlPEWtn5qQlan3m5CW67wlOuNv3m4qCzPdIpjrjGiUFloOlJXB4+G9W+5O7CovtDrFJP4X/6UKSYI7ekez+Ky32KBHklNE+vZq8y8XImjwS+giRnYgsw2oo+xucHTcL75lx10f5ehs03HX1NmOti8LTDobPe9qkvN/RoVOTTw82vw+W/h8tdNZZJrcF1wjBEOV1WTKzR15h/N/YdfCpPvMR330xPhaWc4K/1GOP8Js79mvilJHnOtc/S+NqGp5sUFLtHI2+J8drT5/4F5QTiQYf4XrhmdwxLMtjQHYgdB1mr48l5TWeYXaMRuzn8hKOLI79uBiKchCB7i6vgHxodx9/RUHr4wjUCblWtPS+HX01L5xyUjGJcSyd1vr2Pm49+zcm8hK/YU8djX25veKLq/6URjBrrPNRaNHskmfwDu1e2Sx8LN38A5fzex8Hrn2IagSBh3C8QONhVJA882ItI8RNJ8wN2e78y235nGWwHTOR1YY2xLSjfeSdEecy2yrxGHU283HXtNGVz8fMvJ/x69mopU9mrjVQWEtfCjOj2NxNHmuxZlmuOG8NRBt9c0dLbZHtpqqq3evtq83dfXmGnq/9HPCJqL6hJTyuuwuwdguvILlY3GloTGu5+Xt8l0xjGpcMcqmHKv+Y7hiXDpfBh2kfEEc9a5n+OahLDsoPs+h/ea39O52iQB4cZbA9jsLC1OGtvU01i/wPwfXRV5jT2Numr48BcmxxGeZAoTtn8O2z478jftYMTTEIQ2cPf0gUecC7RZef3mU3hq8S5eWZ7JE5ePYuXeIp79fg9r9x1m1qgkrjm1j/EWKvLds8JCU9FQyngh2avdU5KA+03VtQ4FmLfMAdNh9FXucxF9IPNHE193hUiaJ5R3f2vedHuOcJeblmYb0YgdYsTh/ZvgxydNuMnVgaVdYu6bOuPIwY4ueiS7BzweWGtKc0dc3nJbl6cRO9h4Fy6Rcnka1SVm0sbQePeAwLzNZlS5o85Udm373Ewrr6xN5+na9L4pq60uNp5ZYISpkio54J4ePzjGhNQObXPfu7WVHfudYf6+/pOZFt9eZzp71wDJslx3KKlojxHs1JkmDGYLMguK2YJN+C88CeLT3CLz8+smnzH9QbcQN/Y0lj5mPMNrPjI5Ia1NnmXb5zD66pbt7SDE0xCEdiTAz8o9Zw1iwwMzmT0qib+cP5Q7zhxAZa2dP3+0iXnf7IBpf4EbFzYVisb7YDpRaHnsR+PO2pVIbUxkHxNHrzrs9jQa1/trDXuWGC/DYmla8XRgjZnuZNhFpsM7vNfcz7UaodUPRs1tXTDAPb7gwBqTVA+JgUm/bbmtSzTiBpsQ2OG9Ju9Qnuf+7lmrjPfUo7eZtiVrJeQ7vbeCHeY5Uf2hZ1rTdT1cAvT1n0DbTThJO2DdG808jTiocK44eGir6cyPRsIoU/GUv82Ir4uyg+6FtPK3G+ELTzIFAKOvcT8PzG+rlMlZTbjT/D+UxT1ZJZgKs8AI85v89F/zP3EVESgFg86F3UtaX9irgxDREIQOQDnfFgNtRkQ+veN0LhmbzLxvdvLs8hwTyz6aaCSnm7i1a5naxjTxNFoQDVf5b/E+t1iUHXSPBTi0xXTKrg7I5UXs/NrE1pPGGjG56DkTljreNdXDk0wn/fGvTQ7jhi9bL0mOSTUDGJPSzbPKct3J98aVYRF9jE1xQ0xeA+d3Kdhpvk/cEOM1NJ499nCmebPXDjNdx7ALIXm8CSe52gVHG9Gw15pxG/XVx/6+rvBR7npTEBASa+5TmmPCaeAMX2mT3xl/C0y80/k8p2gMbJSLmflXuPV7mPu2+3/R8FsmmlUd6yqO9CgGn2vClHuWHN3edkbCU4LQCVgsir9fPILqOjuPfLmNmnoHfaKDOd8vCGt9lXsNDhejr4EBM8ykh80JjnbvtygazjmwDme6PQ17jQmlhESbt1MwngaYjj2it7Mzxj3FR1CkmaDRcpzdhCtHcmgznPEHtyfTEgkj4X+c+ZcoZ2VZ1krntRHuAYSueb3ihrrXDwkIh4MbjUeRdrH5voWNwlNFmWZwZVQ/iB3oDPsNMXmAygITdgvs4fZoXF7DsUQjqp/xeHYtNuGuweeZMTRlB91hQNeqfM1FICTWvAz0ndzsdxhh/poTlmBEMaCH+S6N6TPR2L/tC2NDJyGiIQidhNWi+NdlIzlcWcvji3YAMD4giARVxVe7q5k+1IGf1cLeggpiQv0J69GClwGNPA1lOpPmxKSajv7gRvP2awsxb6pluUY0MpeaaU0a3/+GL515gvqm4ZmWktfHwiUSFhuk3+D551zPdY1raDxppEsIXR169ADT2e/82ngScUPNGA5XrkJrIyJ9JsA5j7rvE5NqKqcKdxnxVcr9e+5ZYvIiruR1a1gsxgva/IH5nU//jQmBlWQZDyY61S1ezT3F8bfAwJnuwY3HItyZ1xg4E/z8m16z2oyQ7P/Js3u1EyIagtCJBPhZee3GU9hfVEm9w0HYGzFQUsSzKwt4ct+PjO0Tyesr9xEd4s/c8b05WFLNOcN7MnVwo9yGKy4eFGE6sObYgtxv5KU5puPMXGpEI3awmdYi7eKmn+mRfHSP4HjokWzi82kXmdCPp8QOMl6KqyIobqjplB31TT0NMCE0v0CzlgkYMSnabcSxrsoMQKwtc3svLqIHmO3+lW7bGudOYlLNKP5jkTDSrBU//lZjd1hPp6eioc9pjUSjmaeROsPjnwMwE0BC655E4mjze1UVd1rpreQ0BKGTsVgUKTEhDIgLI7SHCTX95vxxFFXU8tqKfVw6Npk+0SE89e0uPt2Qwy9eW8PqTDO9xqYDJfxn2QHq/UJwuMo1WyJpjBEHbXdXHZXmmEqfmlJIOb3jvmBAKFz5Dpz1yPF9TimTILbXmuOwnqayCdyeRs80Exrqd4Z75mC/QBMycuULKgrcM/O6ylxduESj4pB7jIRLPLTd8/zNkAvMW/6U3zttTTDiBmaBLjBl081zVcdLykSTQxkwveXrrjVacteZcuLVL57Y8zxAPA1B8CbOaT8mjxjA4vRoDhRXMTA+DK01pVX1aDQX/nc517y4kshgf3JLzLrm5/uHUHbYwtaMLHKKq0noEchl43q575s01r0Wg6tjKTvonn22eXy8vTneN+qGz82EjBdNAts/1JQclx90e0FBkfDbLSaf4ZqqPXaQqe5yeWCVRxGNyBQTgtJ2t8gERrg9Gk9FI2UiXN9ojISrPBaMNxcU6Ra8E6HfGfCL71u/7pow88Aa8/+OHgDjbjrx5x4FEQ1B8CauN9HAHoTY/BgYb3IISil6BJuRzS/fMI5nvt9DTb2dYYk9uGBkApa3hrIrH+59b0PDrUqr67h5Uj9z4PIugEL/JKKDY8wAv9IcM6gwrIVS3q5A38nOaebjnCWpiSYH0XiUt+s3c3kacc6OvsHTKHRPR9J8NUWrzQhH0W63yFgspoMvyzl2uW1rNBaNsJ7mPifqZXhCUKSpOsuYb3IqU//c4Y8U0RAEbxISY96qjxJH7xMdwiMXDW968oYFTHZo3syuZEBcKA9+soWHPt9KWXU9d09PpSAwhRAdQLCq4a8/lPBEeALq0FYzhcWIS49qUvbhSoL9/YgK8T9quw7BPxgGn29KXwGm/qn1NbQj+piEtMurafA0Co2nEdqz5YRz9AAjGo0HV4bGOkXjOMuLXYQ5R+6jjABd9mrLo+U7gqQxZiCjLaRTqqhENATBm5z2KxOSOV5sQdiACf1NpzjvilEE2qz83+Kd7C+qpHdUMBN0X8ZY9vDRjipuigpheOUKtMXGqshZ7F21n4vHJrvnxHJSVWtnzn+WMzQxnFdvHN8OX7ANXPScSaSDe+r3lrD6mZJgF65S5MoC56DElJY/F5MKOxeaSjIXofHGM2hpXIwnuDyNkFhjV/BR8k3tTeJoIxpDZ5tR5x2MV0RDKRUFvA2kAJnAZVrrI14nlFL/AM7DJOwXAXfpI6YNFYSTmPDEIyts2oDNauGxS0fQNyaYx7425bxBPc9hXN9CbrX1Z/uqUIYDD9VczoufVgIbWbA6iz7RweQUV3HLpH7MGBrPgtX7KSivYenOfHJLqqi3a2xWCz17eFBR1F64Rp8fL4E9TJlvRYFZQKnxFOyNcU1P39jTSL/JPUq7LYTEmlyJN8J+KZPMs8dc2ymP85ancR+wWGv9qFLqPufx7xs3UEpNACYCrhEvy4ApwHedaKcgnDQopbhjaip9okP400ebGHj27VgGx/MHoG7Y78laM5SoiGt5oWc4lXV2/vjBRvYXVRIW6Metr61hQv9odueXMyAulF2Hynn2+z18tO4AsaEBLLx7MhZLJ4Vb2opSxtvIXW+S564kcXMSxwDKXUkFTWfLbQsWiwlRuSaY7EwSR8F9+9o2pqYNeEs0ZgNnOPdfwQjB75u10UAg4A8owAbkdY55gnDycsHIRM4fkdAwlQmArc94evUZz68atTsnrScWpXBozVur9vPEoh0crqzjsUtH8n/f7OTl5ZkAFFfW8f2OfKYMjEVjBik25vsd+WzNLeW2Kf2bnN+QXcwXGw/y+7MHNbGlQwmJcS9J2/vUltskjoJ7dzcNT7UHZ/xP04R4Z9JJggHeE414rXUugNY6Vyl1RG2a1vonpdQSIBcjGv/WWm9t6WZKqVuBWwF6925ljhtB6EZ40km78hlWFNeelsLskUlsyS3ltP7RHDhcRca+w/zl/KE898MeHl+0g0e+3Eq9Q/PcNWPpFxOKUlDv0Pzhg40cKK5iysBYhiS4pz159MttLN9dyOkDYjg9teUJDrcfLOP1Ffu4Z+aghmqxEyI42kzh4R/mrqpqifYWDDBrk3QDOkw0lFLfAC35an/08PMDgCGAa5jqIqXUZK31D83baq2fA54DSE9Pl5yHILSBHsE2TutvOtNL03vRLzaUcSmR1NodPPrlNmJCAwDNuU8uQwED4kKZMyqJA8VVWBQ8+/1ubj9jALvzyxkYH8ry3WZKj5eXZxIT5s9HP+dwzWl9SIowM9v+vP8w189fTUlVHRYFD852l7vW2x0s3VnApNQY/KzHMQbZVUGVnG4S0kK702G/qta6lSGMoJTKU0olOL2MBOBQC80uBFZorcudn/kSOBU4QjQEQWhfrBbF+L6mAui601KwWS3MGplInd3Bf7/bhZ/FwoLV+3n4i60M7hnGxAExvLw8ky82HqTW7qBXVBD+Vg0tV8QAAA0mSURBVAsXj01iweosVmcWUVJVx0s/7uXhOWmcNyKBW15dQ0SwjdMHxPD6yv3MPaU3g3uGU1Vr59dvreWbrYf403lD3GNPPMGV3HaNyhbaHW9NI/IJcJ1z/zrg4xba7AemKKX8lFI2TBK8xfCUIAgdR5C/lZtO70tsWACJEUE8NGc4D8waxvPXphMZbOO3MwZy86S+hPhbOXNwLHPH9yKrqIrzRiRw57RULEoR4m/l7VtPZVSvCP7y8WYe/XIbBeU1PH7ZKB6ak0ZogB8PfrIFrTV3LviZxdsOER8ewMvLM7E73MGDHXllXPL0cpZsa+k9E7en0Vo+QzhhlDcqWJVS0cA7QG+MOFyqtS5SSqUDt2mtb1ZKWYH/ApMxSfGvtNatrOTiJj09XWdkZHSg9YIguHA4dENVVb3dzNKrtWbh5oOM7xtNVIg/a/cfJjkiiLjwQLIPVzLj8R+oqrMzdXAcL10/DoDXfsrkzx9v5vL0XrydkcV95wymT1Qwt7+xlmeuHsvZaT1ZvquAX7y+hrLqemLDAvj816fz+sr9ZBdVEhMWwB1TBxCe8yN8/We48SvwD6He7uCZ73dTUF7L1MFxTEqN6byk/EmGUmqN1jr9mO18bdiDiIYgdG1eXLaXv3+1jQ9un0Bakplqo97u4PynlrHtYBkD40P5/M5JKGDKP79DKThzUBxvrtpPv5gQfjdzIL98Yy0Bflaq6+0k9gjiYKmZf+u5a9IZmmiS8RU19fz6rZ/5dtsh/P0s1NY7+M30gdw1PfUIm15ZnsmhsmruPWtwZ/4UXQpPRUNmuRUEoVO56fS+rPnT9AbBAPCzWvjrnDR6hgfy0Jzh2KwW/KwW/n7xCMIDbby2Yh8zh8bz4a8mcnZaArdO7k9IgJX514/jx/um8u5tp1Fb7+CON9dSXWfnUFk1Vzy3gu+2H+KhOWlsuH8ml4xN5olvdvDyj3ub2LNk2yHu/2Qz/1mym515ZQ3nS6vruO/9DVz43x85VGqmNamus1NSVefR96yuszP/x71U1ta3w6/WdRBPQxCELoPWusXwUUllHeFBfg3XtNY4dNMxIz/syOfal1YxfUg8G7KLKauu599XjmbaEDNKu97u4JdvrOXrLXk8NCcNrTUZ+w7z7bZDJPYIIrOwggtHJ9Ej2Mb7a7KprLVTXWfH389CYo8gIoJtrN1fDMB5IxJ44rJR+Pu537vr7A6e/X43H63LYf7141i2q4D/+WAjN0xM4f4Ljiz/fWHpHlZnFvHM1WO7RMjMU09DatIEQegytNZ5Nh/DoZTC2qzp5IGxXDwmmffXZjOqVwQPzUk7wpt5cu5obnx5NX/6aBMAiT0CGZcSxf0XDOXZH/bw5kqz9Oz0IfEkRgRy8Zhkauod3DB/FRq4a1oqZdX1vPTjXnYfKqe8pp6RvSK4anxvHv5iK5tzSgF4bcU+1mUZgXl5eSZzRiUxspd7kaQdeWU8+uU26h2aJdsPNV1ky4nWmleWZ7Joax5PXD6KuLCjT+WyNbeUQ2U1TBkYe9R2J4p4GoIg+AzVdXY2HighvU9kqwJUXlPP26uzOLVfFMMS3aKyO7+cC55axlWn9OYP5w5p8vmKmnqCbNaGpP+bK/cz/8e99IkO4Ycd+dTaHcSE+vPQnDQ+WZ/DDzsKKP//7d17jFx1Gcbx7+O22+620G1pwUrvUDCoQAs2jQJG8dI2SFWitEFtlAQhGEuI2hqMwcTEVKPBBiJQKaJWi7dqTYRAGlIucm1paRF6LxYovQGWsrDtLq9/nN+S6XZne3a7e86AzyeZzJm305l333PmvOcy5zctrXzjggkse/IFDrS08rHTRnD8wP401Nex6rlX+M/LzTTW1zFqaAPXfup0Nu1+jdlTxtDvPeLhrfu4ZeVWVm7cA8DZo5tYesVUBvY/clyu3fvf5FcPbuO2B7dxyohB3D23Z0O++ES4mVk3vXmordMVc1c27XqNu9a/xFemjmXooHoe3rKP2YseAeCB736cNw61cftD27l/4x7a3goOtLRyoKWVBZd8iOaDbfzwH/9++7U+eHJ2ncqWPa8zpKE/cy+cyPuaBnLl71Zz/sThLJw1iaGD6mk+2Mr9G/fy51U7uG9D9rqzPjyaedPez9AeDmnvpmFmVoKIYPovHqCpsT9LrzjyIsOI4PWDbQwe0I/mg61cvWQ1k8YMZewJjfz4n8/y3iED+fLUsVx05si3G9gfH9/B9/+2nsYBdQxrrGfHK80cagtOPG4Al5wzii+eM4oJIwYfU95uGmZmJXm1+WD264sNvTCeVrJ2x6vc/tA2DrUFo4c1ct6pw5k6YVj3hlnpgk+Em5mVpKmx93/18KzRTdwwq8pw7wXydRpmZpabm4aZmeXmpmFmZrm5aZiZWW5uGmZmlpubhpmZ5eamYWZmublpmJlZbu+6K8Il7QGeO4aXGA7s7aV0epPz6p5azQtqNzfn1T21mhf0LLexEXHUIXLfdU3jWEl6Is+l9EVzXt1Tq3lB7ebmvLqnVvOCvs3Nh6fMzCw3Nw0zM8vNTeNIt5adQBXOq3tqNS+o3dycV/fUal7Qh7n5nIaZmeXmPQ0zM8vNTcPMzHJz00gkTZO0QdJmSfNLzGO0pPskPSPpaUlzU/x6SS9IWpNuM0rKb7ukdSmHJ1JsmKR7JW1K90MLzun0irqskbRf0jVl1EzSYkm7Ja2viHVaH2UWpmXuKUmTC87rp5KeTe+9TFJTio+T9EZF3W7uq7y6yK3qvJP0vVSzDZI+U3Bed1bktF3SmhQvrGZdrCOKWc4i4v/+BtQBW4AJQD2wFjijpFxGApPT9HHARuAM4Hrg2zVQq+3A8A6xnwDz0/R8YEHJ8/IlYGwZNQMuACYD649WH2AGcBcgYCrwaMF5fRrol6YXVOQ1rvJ5JdWs03mXPgtrgQHA+PS5rSsqrw7//jPgB0XXrIt1RCHLmfc0MlOAzRGxNSIOAkuBmWUkEhE7I2J1mn4NeAY4uYxcumEmcEeavgP4XIm5XAhsiYhjGRWgxyLifuDlDuFq9ZkJ/CYyjwBNkkYWlVdE3BMRrenhI8Covnjvo6lSs2pmAksjoiUitgGbyT6/heYlScCXgD/0xXt3pYt1RCHLmZtG5mRgR8Xj56mBFbWkccAk4NEU+mbavVxc9CGgCgHcI2mVpCtS7KSI2AnZAg2cWFJuALM4/INcCzWrVp9aWu6+TrY12m68pCclrZR0fkk5dTbvaqVm5wO7ImJTRazwmnVYRxSynLlpZNRJrNTvIksaDPwFuCYi9gO/BE4BzgZ2ku0al+GjETEZmA5cLemCkvI4gqR64GLgTylUKzWrpiaWO0nXAa3AkhTaCYyJiEnAtcDvJR1fcFrV5l1N1AyYzeEbJ4XXrJN1RNWndhLrcc3cNDLPA6MrHo8CXiwpFyT1J1sYlkTEXwEiYldEtEXEW8Ai+miX/Ggi4sV0vxtYlvLY1b67m+53l5EbWSNbHRG7Uo41UTOq16f05U7SHOAi4LJIB8DToZ99aXoV2XmD04rMq4t5Vws16wd8AbizPVZ0zTpbR1DQcuamkXkcmChpfNpanQUsLyORdKz0NuCZiPh5RbzyGOTngfUd/28BuQ2SdFz7NNmJ1PVktZqTnjYH+HvRuSWHbf3VQs2SavVZDnw1fbtlKvDf9sMLRZA0DZgHXBwRzRXxEZLq0vQEYCKwtai80vtWm3fLgVmSBkgan3J7rMjcgE8Cz0bE8+2BImtWbR1BUctZEWf73wk3sm8YbCTbQriuxDzOI9t1fApYk24zgN8C61J8OTCyhNwmkH1zZS3wdHudgBOAFcCmdD+shNwagX3AkIpY4TUja1o7gUNkW3iXV6sP2WGDm9Iytw44t+C8NpMd625fzm5Oz70kzd+1wGrgsyXUrOq8A65LNdsATC8yrxT/NXBlh+cWVrMu1hGFLGceRsTMzHLz4SkzM8vNTcPMzHJz0zAzs9zcNMzMLDc3DTMzy81Nw6wHJLXp8JF1e21k5DRialnXlJh1qV/ZCZi9Q70REWeXnYRZ0bynYdaL0m8sLJD0WLqdmuJjJa1IA/CtkDQmxU9S9lsWa9PtI+ml6iQtSr+XcI+khtL+KLMKbhpmPdPQ4fDUpRX/tj8ipgA3Ajek2I1kw1OfSTYw4MIUXwisjIizyH674ekUnwjcFBEfAF4lu+LYrHS+ItysByQdiIjBncS3A5+IiK1pULmXIuIESXvJhsI4lOI7I2K4pD3AqIhoqXiNccC9ETExPZ4H9I+IH/X9X2bWNe9pmPW+qDJd7TmdaamYbsPnH61GuGmY9b5LK+4fTtP/Ihs9GeAy4ME0vQK4CkBSXQm/W2HWLd56MeuZBklrKh7fHRHtX7sdIOlRso2y2Sn2LWCxpO8Ae4Cvpfhc4FZJl5PtUVxFNrKqWU3yOQ2zXpTOaZwbEXvLzsWsL/jwlJmZ5eY9DTMzy817GmZmlpubhpmZ5eamYWZmublpmJlZbm4aZmaW2/8Aej2jJC+Qk0sAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training co-effiency    : 0.8329890729293876;\n",
      "Validation co-effiency : 0.7589136445522309\n"
     ]
    }
   ],
   "source": [
    "#This code combined 2 seperate training history together and plot the result\n",
    "hist = {}\n",
    "for i in history.history.keys():\n",
    "    hist_concate = np.array([np.array(history.history[i]), np.array(history2.history[i])]).flatten() \n",
    "    hist[i] = hist_concate\n",
    "# Plot training & validation accuracy values\n",
    "plt.plot(hist['jaccard_coef'])\n",
    "plt.plot(hist['val_jaccard_coef'])\n",
    "plt.title('Coefficiency')\n",
    "plt.ylabel('Coefficiency')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train'], loc='upper left')\n",
    "plt.legend(['Validation'], loc='upper left')\n",
    "plt.show()\n",
    "\n",
    "# Plot training & validation loss values\n",
    "plt.plot(hist['loss'])\n",
    "plt.plot(hist['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train'], loc='upper left')\n",
    "plt.legend(['Validation'], loc='upper left')\n",
    "plt.show()\n",
    "\n",
    "coef = np.array(hist['jaccard_coef'])\n",
    "val_coef = np.array(hist['val_jaccard_coef'])\n",
    "print(\"Training co-effiency    : {};\\nValidation co-effiency : {}\".format(coef[coef==max(coef)][0], val_coef[np.argmax(coef)]))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training co-effiency    : 0.783300117247101;\n",
      "Validation co-effiency : 0.7747246850145575\n"
     ]
    }
   ],
   "source": [
    "coef = np.array(history.history['jaccard_coef'])\n",
    "val_coef = np.array(history.history['val_jaccard_coef'])\n",
    "print(\"Training co-effiency    : {};\\nValidation co-effiency : {}\".format(coef[coef==max(coef)][0], val_coef[np.argmax(coef)]))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.load_weights(\"unet_lesion_20190510_0.844.hdf5\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\li_ni\\Anaconda3\\lib\\site-packages\\keras_preprocessing\\image\\utils.py:98: UserWarning: grayscale is deprecated. Please use color_mode = \"grayscale\"\n",
      "  warnings.warn('grayscale is deprecated. Please use '\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ISIC_0000006.jpg -- jaccard index: 0.8204335570335388\n",
      "ISIC_0000012.jpg -- jaccard index: 0.895277202129364\n",
      "ISIC_0000020.jpg -- jaccard index: 0.9368471503257751\n",
      "ISIC_0000028.jpg -- jaccard index: 0.9540833234786987\n",
      "ISIC_0000029.jpg -- jaccard index: 0.9710405468940735\n",
      "ISIC_0000032.jpg -- jaccard index: 0.9379687309265137\n",
      "ISIC_0000034.jpg -- jaccard index: 0.9610637426376343\n",
      "ISIC_0000036.jpg -- jaccard index: 0.6328821182250977\n",
      "ISIC_0000046.jpg -- jaccard index: 0.7106190323829651\n",
      "ISIC_0000047.jpg -- jaccard index: 0.8271139860153198\n",
      "ISIC_0000048.jpg -- jaccard index: 0.9203502535820007\n",
      "ISIC_0000049.jpg -- jaccard index: 0.7685289978981018\n",
      "ISIC_0000060.jpg -- jaccard index: 0.8884513974189758\n",
      "ISIC_0000066.jpg -- jaccard index: 0.8258415460586548\n",
      "ISIC_0000075.jpg -- jaccard index: 0.9624334573745728\n",
      "ISIC_0000081.jpg -- jaccard index: 0.8980517387390137\n",
      "ISIC_0000085.jpg -- jaccard index: 0.9038308262825012\n",
      "ISIC_0000087.jpg -- jaccard index: 0.9354808330535889\n",
      "ISIC_0000089.jpg -- jaccard index: 0.9107207655906677\n",
      "ISIC_0000092.jpg -- jaccard index: 0.8706009984016418\n",
      "ISIC_0000095.jpg -- jaccard index: 0.9154485464096069\n",
      "ISIC_0000112.jpg -- jaccard index: 0.7860605716705322\n",
      "ISIC_0000119.jpg -- jaccard index: 0.883765459060669\n",
      "ISIC_0000125.jpg -- jaccard index: 0.8447092771530151\n",
      "ISIC_0000135.jpg -- jaccard index: 0.960267961025238\n",
      "ISIC_0000137.jpg -- jaccard index: 0.9573467969894409\n",
      "ISIC_0000142.jpg -- jaccard index: 0.902370274066925\n",
      "ISIC_0000149.jpg -- jaccard index: 0.799121618270874\n",
      "ISIC_0000155.jpg -- jaccard index: 0.9672920107841492\n",
      "ISIC_0000157.jpg -- jaccard index: 0.9225877523422241\n",
      "ISIC_0000160.jpg -- jaccard index: 0.9609214663505554\n",
      "ISIC_0000162.jpg -- jaccard index: 0.9382708668708801\n",
      "ISIC_0000163.jpg -- jaccard index: 0.7930731177330017\n",
      "ISIC_0000167.jpg -- jaccard index: 0.9000542163848877\n",
      "ISIC_0000170.jpg -- jaccard index: 0.8235240578651428\n",
      "ISIC_0000173.jpg -- jaccard index: 0.8443062901496887\n",
      "ISIC_0000179.jpg -- jaccard index: 0.922105610370636\n",
      "ISIC_0000190.jpg -- jaccard index: 0.9496484398841858\n",
      "ISIC_0000200.jpg -- jaccard index: 0.7932716608047485\n",
      "ISIC_0000202.jpg -- jaccard index: 0.8404761552810669\n",
      "ISIC_0000203.jpg -- jaccard index: 0.9629090428352356\n",
      "ISIC_0000204.jpg -- jaccard index: 0.9077168703079224\n",
      "ISIC_0000212.jpg -- jaccard index: 0.8521277904510498\n",
      "ISIC_0000215.jpg -- jaccard index: 0.8692321181297302\n",
      "ISIC_0000216.jpg -- jaccard index: 0.9773960113525391\n",
      "ISIC_0000219.jpg -- jaccard index: 0.887485682964325\n",
      "ISIC_0000221.jpg -- jaccard index: 0.8493685722351074\n",
      "ISIC_0000226.jpg -- jaccard index: 0.7907704710960388\n",
      "ISIC_0000228.jpg -- jaccard index: 0.9523350596427917\n",
      "ISIC_0000243.jpg -- jaccard index: 0.9088700413703918\n",
      "ISIC_0000246.jpg -- jaccard index: 0.8495122194290161\n",
      "ISIC_0000247.jpg -- jaccard index: 0.7562373280525208\n",
      "ISIC_0000249.jpg -- jaccard index: 0.9141145944595337\n",
      "ISIC_0000252.jpg -- jaccard index: 0.9513052701950073\n",
      "ISIC_0000260.jpg -- jaccard index: 0.901453971862793\n",
      "ISIC_0000268.jpg -- jaccard index: 0.9264652132987976\n",
      "ISIC_0000297.jpg -- jaccard index: 0.9480393528938293\n",
      "ISIC_0000299.jpg -- jaccard index: 0.8916699886322021\n",
      "ISIC_0000301.jpg -- jaccard index: 0.9331434965133667\n",
      "ISIC_0000313.jpg -- jaccard index: 0.9305773377418518\n",
      "ISIC_0000319.jpg -- jaccard index: 0.9422574043273926\n",
      "ISIC_0000322.jpg -- jaccard index: 0.8870580792427063\n",
      "ISIC_0000324.jpg -- jaccard index: 0.8553594350814819\n",
      "ISIC_0000330.jpg -- jaccard index: 0.9293281435966492\n",
      "ISIC_0000350.jpg -- jaccard index: 0.9483736157417297\n",
      "ISIC_0000352.jpg -- jaccard index: 0.8356937766075134\n",
      "ISIC_0000353.jpg -- jaccard index: 0.8872888684272766\n",
      "ISIC_0000355.jpg -- jaccard index: 0.9279837608337402\n",
      "ISIC_0000359.jpg -- jaccard index: 0.9558018445968628\n",
      "ISIC_0000361.jpg -- jaccard index: 0.9366283416748047\n",
      "ISIC_0000365.jpg -- jaccard index: 0.9121827483177185\n",
      "ISIC_0000366.jpg -- jaccard index: 0.882878839969635\n",
      "ISIC_0000367.jpg -- jaccard index: 0.8514180779457092\n",
      "ISIC_0000370.jpg -- jaccard index: 0.9266745448112488\n",
      "ISIC_0000376.jpg -- jaccard index: 0.8640556931495667\n",
      "ISIC_0000380.jpg -- jaccard index: 0.8964901566505432\n",
      "ISIC_0000387.jpg -- jaccard index: 0.8776866793632507\n",
      "ISIC_0000392.jpg -- jaccard index: 0.6510541439056396\n",
      "ISIC_0000397.jpg -- jaccard index: 0.8290894031524658\n",
      "ISIC_0000421.jpg -- jaccard index: 0.9254648089408875\n",
      "ISIC_0000425.jpg -- jaccard index: 0.9186224341392517\n",
      "ISIC_0000427.jpg -- jaccard index: 0.9541099071502686\n",
      "ISIC_0000470.jpg -- jaccard index: 0.9160120487213135\n",
      "ISIC_0000476.jpg -- jaccard index: 0.7818596363067627\n",
      "ISIC_0000477.jpg -- jaccard index: 0.8423637747764587\n",
      "ISIC_0000479.jpg -- jaccard index: 0.7878270745277405\n",
      "ISIC_0000484.jpg -- jaccard index: 0.8487844467163086\n",
      "ISIC_0000486.jpg -- jaccard index: 0.9270118474960327\n",
      "ISIC_0000490.jpg -- jaccard index: 0.8937792778015137\n",
      "ISIC_0000492.jpg -- jaccard index: 0.8399737477302551\n",
      "ISIC_0000494.jpg -- jaccard index: 0.8246773481369019\n",
      "ISIC_0000503.jpg -- jaccard index: 0.9409977197647095\n",
      "ISIC_0000510.jpg -- jaccard index: 0.8896801471710205\n",
      "ISIC_0000518.jpg -- jaccard index: 0.871995747089386\n",
      "ISIC_0000525.jpg -- jaccard index: 0.9398304224014282\n",
      "ISIC_0000541.jpg -- jaccard index: 0.8836766481399536\n",
      "ISIC_0000543.jpg -- jaccard index: 0.9472714066505432\n",
      "ISIC_0000549.jpg -- jaccard index: 0.823115348815918\n",
      "ISIC_0001103.jpg -- jaccard index: 0.8817885518074036\n",
      "ISIC_0001118.jpg -- jaccard index: 0.9205701351165771\n",
      "ISIC_0001128.jpg -- jaccard index: 0.8544211983680725\n",
      "ISIC_0001186.jpg -- jaccard index: 0.9320332407951355\n",
      "ISIC_0001188.jpg -- jaccard index: 0.8379746079444885\n",
      "ISIC_0001190.jpg -- jaccard index: 0.7374899387359619\n",
      "ISIC_0001191.jpg -- jaccard index: 0.8453670740127563\n",
      "ISIC_0001204.jpg -- jaccard index: 0.8047687411308289\n",
      "ISIC_0001212.jpg -- jaccard index: 0.890854001045227\n",
      "ISIC_0001213.jpg -- jaccard index: 0.8305761814117432\n",
      "ISIC_0001242.jpg -- jaccard index: 0.8935274481773376\n",
      "ISIC_0001286.jpg -- jaccard index: 0.9170899391174316\n",
      "ISIC_0001306.jpg -- jaccard index: 0.7605871558189392\n",
      "ISIC_0001367.jpg -- jaccard index: 0.7967270612716675\n",
      "ISIC_0001769.jpg -- jaccard index: 0.9447851777076721\n",
      "ISIC_0002206.jpg -- jaccard index: 0.8564353585243225\n",
      "ISIC_0002438.jpg -- jaccard index: 0.9022921323776245\n",
      "ISIC_0002453.jpg -- jaccard index: 0.8798197507858276\n",
      "ISIC_0002616.jpg -- jaccard index: 0.7199274897575378\n",
      "ISIC_0002647.jpg -- jaccard index: 0.8778453469276428\n",
      "ISIC_0002780.jpg -- jaccard index: 0.780067503452301\n",
      "ISIC_0003056.jpg -- jaccard index: 0.8244550824165344\n",
      "ISIC_0003174.jpg -- jaccard index: 0.6294670104980469\n",
      "ISIC_0003346.jpg -- jaccard index: 0.9144769906997681\n",
      "ISIC_0003728.jpg -- jaccard index: 0.10045929998159409\n",
      "ISIC_0003805.jpg -- jaccard index: 0.8650164604187012\n",
      "ISIC_0004309.jpg -- jaccard index: 0.7588269114494324\n",
      "ISIC_0005000.jpg -- jaccard index: 0.9330090880393982\n",
      "ISIC_0005247.jpg -- jaccard index: 0.7695396542549133\n",
      "ISIC_0005548.jpg -- jaccard index: 0.8934577107429504\n",
      "ISIC_0005555.jpg -- jaccard index: 0.7666708827018738\n",
      "ISIC_0005666.jpg -- jaccard index: 0.8709911704063416\n",
      "ISIC_0006021.jpg -- jaccard index: 0.7786344885826111\n",
      "ISIC_0006711.jpg -- jaccard index: 0.6669057011604309\n",
      "ISIC_0007156.jpg -- jaccard index: 0.7627761960029602\n",
      "ISIC_0007322.jpg -- jaccard index: 0.8170912265777588\n",
      "ISIC_0007332.jpg -- jaccard index: 0.851630449295044\n",
      "ISIC_0007344.jpg -- jaccard index: 0.9028573036193848\n",
      "ISIC_0007557.jpg -- jaccard index: 0.873451828956604\n",
      "ISIC_0008236.jpg -- jaccard index: 0.8851819634437561\n",
      "ISIC_0008256.jpg -- jaccard index: 0.9223983883857727\n",
      "ISIC_0008998.jpg -- jaccard index: 0.9272988438606262\n",
      "ISIC_0009160.jpg -- jaccard index: 0.8542855381965637\n",
      "ISIC_0009201.jpg -- jaccard index: 0.8060168027877808\n",
      "ISIC_0009252.jpg -- jaccard index: 0.7604771256446838\n",
      "ISIC_0009533.jpg -- jaccard index: 0.9052848815917969\n",
      "ISIC_0009599.jpg -- jaccard index: 0.9325122237205505\n",
      "ISIC_0009758.jpg -- jaccard index: 0.9160428047180176\n",
      "ISIC_0009868.jpg -- jaccard index: 0.8039302229881287\n",
      "ISIC_0009884.jpg -- jaccard index: 0.8714985251426697\n",
      "ISIC_0009896.jpg -- jaccard index: 0.6422938108444214\n",
      "ISIC_0009898.jpg -- jaccard index: 0.7566712498664856\n",
      "ISIC_0009902.jpg -- jaccard index: 0.8447790145874023\n",
      "ISIC_0009914.jpg -- jaccard index: 0.9628608822822571\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ISIC_0009918.jpg -- jaccard index: 0.8337304592132568\n",
      "ISIC_0009940.jpg -- jaccard index: 0.9321633577346802\n",
      "ISIC_0009941.jpg -- jaccard index: 0.9281371235847473\n",
      "ISIC_0009951.jpg -- jaccard index: 0.7013854384422302\n",
      "ISIC_0009953.jpg -- jaccard index: 0.8924925327301025\n",
      "ISIC_0009965.jpg -- jaccard index: 0.7939569354057312\n",
      "ISIC_0009967.jpg -- jaccard index: 0.952351987361908\n",
      "ISIC_0009987.jpg -- jaccard index: 0.8381227254867554\n",
      "ISIC_0010010.jpg -- jaccard index: 0.862345814704895\n",
      "ISIC_0010015.jpg -- jaccard index: 0.9470975995063782\n",
      "ISIC_0010017.jpg -- jaccard index: 0.8119939565658569\n",
      "ISIC_0010023.jpg -- jaccard index: 0.905510425567627\n",
      "ISIC_0010024.jpg -- jaccard index: 0.2746669352054596\n",
      "ISIC_0010025.jpg -- jaccard index: 0.9013641476631165\n",
      "ISIC_0010028.jpg -- jaccard index: 0.9628216624259949\n",
      "ISIC_0010056.jpg -- jaccard index: 0.9429064393043518\n",
      "ISIC_0010067.jpg -- jaccard index: 0.7677852511405945\n",
      "ISIC_0010069.jpg -- jaccard index: 0.9511911869049072\n",
      "ISIC_0010070.jpg -- jaccard index: 0.6869669556617737\n",
      "ISIC_0010171.jpg -- jaccard index: 0.9232465028762817\n",
      "ISIC_0010191.jpg -- jaccard index: 0.923750638961792\n",
      "ISIC_0010213.jpg -- jaccard index: 0.8719640970230103\n",
      "ISIC_0010215.jpg -- jaccard index: 0.8813525438308716\n",
      "ISIC_0010219.jpg -- jaccard index: 0.8405581116676331\n",
      "ISIC_0010232.jpg -- jaccard index: 0.8719046711921692\n",
      "ISIC_0010233.jpg -- jaccard index: 0.9662673473358154\n",
      "ISIC_0010237.jpg -- jaccard index: 0.734797477722168\n",
      "ISIC_0010241.jpg -- jaccard index: 0.9317705631256104\n",
      "ISIC_0010251.jpg -- jaccard index: 0.9154548048973083\n",
      "ISIC_0010255.jpg -- jaccard index: 0.9516403079032898\n",
      "ISIC_0010256.jpg -- jaccard index: 0.8691083192825317\n",
      "ISIC_0010262.jpg -- jaccard index: 0.8662472367286682\n",
      "ISIC_0010263.jpg -- jaccard index: 0.926128089427948\n",
      "ISIC_0010265.jpg -- jaccard index: 0.7755098342895508\n",
      "ISIC_0010321.jpg -- jaccard index: 0.8320978283882141\n",
      "ISIC_0010322.jpg -- jaccard index: 0.7400417923927307\n",
      "ISIC_0010327.jpg -- jaccard index: 0.7594959139823914\n",
      "ISIC_0010335.jpg -- jaccard index: 0.8327300548553467\n",
      "ISIC_0010346.jpg -- jaccard index: 0.7943064570426941\n",
      "ISIC_0010347.jpg -- jaccard index: 0.5686253309249878\n",
      "ISIC_0010349.jpg -- jaccard index: 0.8990457057952881\n",
      "ISIC_0010364.jpg -- jaccard index: 0.8820921778678894\n",
      "ISIC_0010367.jpg -- jaccard index: 0.8195919394493103\n",
      "ISIC_0010372.jpg -- jaccard index: 0.8713060021400452\n",
      "ISIC_0010374.jpg -- jaccard index: 0.9539116024971008\n",
      "ISIC_0010444.jpg -- jaccard index: 0.8532640337944031\n",
      "ISIC_0010459.jpg -- jaccard index: 0.9628196954727173\n",
      "ISIC_0010474.jpg -- jaccard index: 0.9595519304275513\n",
      "ISIC_0010476.jpg -- jaccard index: 0.8083453178405762\n",
      "ISIC_0010480.jpg -- jaccard index: 0.7472714185714722\n",
      "ISIC_0010494.jpg -- jaccard index: 0.9300764203071594\n",
      "ISIC_0010497.jpg -- jaccard index: 0.7999122738838196\n",
      "ISIC_0010584.jpg -- jaccard index: 0.7743555903434753\n",
      "ISIC_0010595.jpg -- jaccard index: 0.902031660079956\n",
      "ISIC_0010598.jpg -- jaccard index: 0.9466341137886047\n",
      "ISIC_0010599.jpg -- jaccard index: 0.9599079489707947\n",
      "ISIC_0010602.jpg -- jaccard index: 0.9686450958251953\n",
      "ISIC_0010847.jpg -- jaccard index: 0.2694448232650757\n",
      "ISIC_0010849.jpg -- jaccard index: 0.7098304033279419\n",
      "ISIC_0010851.jpg -- jaccard index: 0.8383992910385132\n",
      "ISIC_0010861.jpg -- jaccard index: 0.8985482454299927\n",
      "ISIC_0011081.jpg -- jaccard index: 0.7774813175201416\n",
      "ISIC_0011084.jpg -- jaccard index: 0.7525057196617126\n",
      "ISIC_0011101.jpg -- jaccard index: 0.9071563482284546\n",
      "ISIC_0011109.jpg -- jaccard index: 0.6792922019958496\n",
      "ISIC_0011117.jpg -- jaccard index: 0.25710222125053406\n",
      "ISIC_0011118.jpg -- jaccard index: 0.9170448184013367\n",
      "ISIC_0011129.jpg -- jaccard index: 0.9452401399612427\n",
      "ISIC_0011130.jpg -- jaccard index: 0.8066771626472473\n",
      "ISIC_0011135.jpg -- jaccard index: 0.9252595901489258\n",
      "ISIC_0011139.jpg -- jaccard index: 0.7737674713134766\n",
      "ISIC_0011157.jpg -- jaccard index: 0.9468708634376526\n",
      "ISIC_0011161.jpg -- jaccard index: 0.6820911169052124\n",
      "ISIC_0011162.jpg -- jaccard index: 0.8563608527183533\n",
      "ISIC_0011166.jpg -- jaccard index: 0.8736549019813538\n",
      "ISIC_0011202.jpg -- jaccard index: 0.7927101850509644\n",
      "ISIC_0011213.jpg -- jaccard index: 0.845493495464325\n",
      "ISIC_0011219.jpg -- jaccard index: 0.9511900544166565\n",
      "ISIC_0011301.jpg -- jaccard index: 0.9256463646888733\n",
      "ISIC_0011330.jpg -- jaccard index: 0.8978908061981201\n",
      "ISIC_0011343.jpg -- jaccard index: 0.8427250981330872\n",
      "ISIC_0011344.jpg -- jaccard index: 0.8771926164627075\n",
      "ISIC_0011362.jpg -- jaccard index: 0.8074023127555847\n",
      "ISIC_0011374.jpg -- jaccard index: 0.63034588098526\n",
      "ISIC_0011382.jpg -- jaccard index: 0.951439380645752\n",
      "ISIC_0012094.jpg -- jaccard index: 0.9214805364608765\n",
      "ISIC_0012107.jpg -- jaccard index: 0.8277649283409119\n",
      "ISIC_0012108.jpg -- jaccard index: 0.9355626702308655\n",
      "ISIC_0012135.jpg -- jaccard index: 0.7994683980941772\n",
      "ISIC_0012136.jpg -- jaccard index: 0.502985954284668\n",
      "ISIC_0012137.jpg -- jaccard index: 0.8486146926879883\n",
      "ISIC_0012156.jpg -- jaccard index: 0.9062862992286682\n",
      "ISIC_0012164.jpg -- jaccard index: 0.899819552898407\n",
      "ISIC_0012201.jpg -- jaccard index: 0.9614921808242798\n",
      "ISIC_0012211.jpg -- jaccard index: 0.9437282681465149\n",
      "ISIC_0012213.jpg -- jaccard index: 0.916274905204773\n",
      "ISIC_0012216.jpg -- jaccard index: 0.5238409638404846\n",
      "ISIC_0012228.jpg -- jaccard index: 0.8910766243934631\n",
      "ISIC_0012235.jpg -- jaccard index: 0.9498639702796936\n",
      "ISIC_0012258.jpg -- jaccard index: 0.08026047796010971\n",
      "ISIC_0012259.jpg -- jaccard index: 0.9386552572250366\n",
      "ISIC_0012260.jpg -- jaccard index: 0.8948394656181335\n",
      "ISIC_0012311.jpg -- jaccard index: 0.863172709941864\n",
      "ISIC_0012320.jpg -- jaccard index: 0.9330918192863464\n",
      "ISIC_0012323.jpg -- jaccard index: 0.7320763468742371\n",
      "ISIC_0012342.jpg -- jaccard index: 0.7777776718139648\n",
      "ISIC_0012372.jpg -- jaccard index: 0.6499117016792297\n",
      "ISIC_0012376.jpg -- jaccard index: 0.7945109009742737\n",
      "ISIC_0012378.jpg -- jaccard index: 0.9181078672409058\n",
      "ISIC_0012415.jpg -- jaccard index: 0.826522946357727\n",
      "ISIC_0012464.jpg -- jaccard index: 0.00031083388603292406\n",
      "ISIC_0012469.jpg -- jaccard index: 0.7317728996276855\n",
      "ISIC_0012487.jpg -- jaccard index: 0.7257022857666016\n",
      "ISIC_0012518.jpg -- jaccard index: 0.537349283695221\n",
      "ISIC_0012520.jpg -- jaccard index: 0.8067083358764648\n",
      "ISIC_0012521.jpg -- jaccard index: 0.9547566771507263\n",
      "ISIC_0012654.jpg -- jaccard index: 0.8127630352973938\n",
      "ISIC_0012661.jpg -- jaccard index: 0.6982251405715942\n",
      "ISIC_0012677.jpg -- jaccard index: 0.8719493746757507\n",
      "ISIC_0012678.jpg -- jaccard index: 0.9015207290649414\n",
      "ISIC_0012680.jpg -- jaccard index: 0.9498633742332458\n",
      "ISIC_0012681.jpg -- jaccard index: 0.9434887170791626\n",
      "ISIC_0012690.jpg -- jaccard index: 0.8818103671073914\n",
      "ISIC_0012699.jpg -- jaccard index: 0.9294864535331726\n",
      "ISIC_0012700.jpg -- jaccard index: 0.943254828453064\n",
      "ISIC_0012705.jpg -- jaccard index: 0.8050469756126404\n",
      "ISIC_0012706.jpg -- jaccard index: 0.26042062044143677\n",
      "ISIC_0012708.jpg -- jaccard index: 0.871264636516571\n",
      "ISIC_0012711.jpg -- jaccard index: 0.8577014207839966\n",
      "ISIC_0012713.jpg -- jaccard index: 0.9154571294784546\n",
      "ISIC_0012720.jpg -- jaccard index: 0.8827816247940063\n",
      "ISIC_0012735.jpg -- jaccard index: 0.9544630646705627\n",
      "ISIC_0012742.jpg -- jaccard index: 0.4460124373435974\n",
      "ISIC_0012749.jpg -- jaccard index: 0.43554744124412537\n",
      "ISIC_0012777.jpg -- jaccard index: 0.8499218225479126\n",
      "ISIC_0012786.jpg -- jaccard index: 0.6251051425933838\n",
      "ISIC_0012840.jpg -- jaccard index: 0.908022403717041\n",
      "ISIC_0012852.jpg -- jaccard index: 0.7084167003631592\n",
      "ISIC_0012855.jpg -- jaccard index: 0.9373838901519775\n",
      "ISIC_0012856.jpg -- jaccard index: 0.6287626028060913\n",
      "ISIC_0012878.jpg -- jaccard index: 0.9257565140724182\n",
      "ISIC_0012883.jpg -- jaccard index: 0.9103184342384338\n",
      "ISIC_0012884.jpg -- jaccard index: 0.9008364081382751\n",
      "ISIC_0012887.jpg -- jaccard index: 0.8074015974998474\n",
      "ISIC_0012901.jpg -- jaccard index: 0.937098503112793\n",
      "ISIC_0012940.jpg -- jaccard index: 0.34268054366111755\n",
      "ISIC_0012944.jpg -- jaccard index: 0.883944034576416\n",
      "ISIC_0012950.jpg -- jaccard index: 0.9435080885887146\n",
      "ISIC_0012956.jpg -- jaccard index: 0.702849805355072\n",
      "ISIC_0012969.jpg -- jaccard index: 0.72892826795578\n",
      "ISIC_0012987.jpg -- jaccard index: 0.7124137282371521\n",
      "ISIC_0012988.jpg -- jaccard index: 0.9471563100814819\n",
      "ISIC_0012990.jpg -- jaccard index: 0.9146617650985718\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ISIC_0013001.jpg -- jaccard index: 0.6437562108039856\n",
      "ISIC_0013027.jpg -- jaccard index: 0.8202494382858276\n",
      "ISIC_0013034.jpg -- jaccard index: 0.8060886263847351\n",
      "ISIC_0013044.jpg -- jaccard index: 0.9411455392837524\n",
      "ISIC_0013052.jpg -- jaccard index: 0.8860083222389221\n",
      "ISIC_0013065.jpg -- jaccard index: 0.6433677673339844\n",
      "ISIC_0013109.jpg -- jaccard index: 0.9316518306732178\n",
      "ISIC_0013112.jpg -- jaccard index: 0.8344424366950989\n",
      "ISIC_0013114.jpg -- jaccard index: 0.9318196773529053\n",
      "ISIC_0013160.jpg -- jaccard index: 0.877713143825531\n",
      "ISIC_0013167.jpg -- jaccard index: 0.9525981545448303\n",
      "ISIC_0013178.jpg -- jaccard index: 0.6404279470443726\n",
      "ISIC_0013189.jpg -- jaccard index: 0.595588743686676\n",
      "ISIC_0013203.jpg -- jaccard index: 0.71566241979599\n",
      "ISIC_0013216.jpg -- jaccard index: 0.932455837726593\n",
      "ISIC_0013224.jpg -- jaccard index: 0.9210376143455505\n",
      "ISIC_0013227.jpg -- jaccard index: 0.7265413403511047\n",
      "ISIC_0013230.jpg -- jaccard index: 0.9456599354743958\n",
      "ISIC_0013235.jpg -- jaccard index: 0.9530379176139832\n",
      "ISIC_0013238.jpg -- jaccard index: 0.8823131322860718\n",
      "ISIC_0013249.jpg -- jaccard index: 0.6746349334716797\n",
      "ISIC_0013275.jpg -- jaccard index: 0.9036638140678406\n",
      "ISIC_0013288.jpg -- jaccard index: 0.757706880569458\n",
      "ISIC_0013304.jpg -- jaccard index: 0.70941162109375\n",
      "ISIC_0013306.jpg -- jaccard index: 0.00032216316321864724\n",
      "ISIC_0013311.jpg -- jaccard index: 0.835555374622345\n",
      "ISIC_0013320.jpg -- jaccard index: 0.9583293199539185\n",
      "ISIC_0013321.jpg -- jaccard index: 0.04985443875193596\n",
      "ISIC_0013325.jpg -- jaccard index: 0.7125736474990845\n",
      "ISIC_0013369.jpg -- jaccard index: 0.8244590163230896\n",
      "ISIC_0013390.jpg -- jaccard index: 0.8369894623756409\n",
      "ISIC_0013403.jpg -- jaccard index: 0.9502143263816833\n",
      "ISIC_0013414.jpg -- jaccard index: 0.9157070517539978\n",
      "ISIC_0013428.jpg -- jaccard index: 0.9292629361152649\n",
      "ISIC_0013458.jpg -- jaccard index: 0.9604857563972473\n",
      "ISIC_0013459.jpg -- jaccard index: 0.771009087562561\n",
      "ISIC_0013565.jpg -- jaccard index: 0.0377967432141304\n",
      "ISIC_0013580.jpg -- jaccard index: 0.8908652663230896\n",
      "ISIC_0013581.jpg -- jaccard index: 0.8580352067947388\n",
      "ISIC_0013603.jpg -- jaccard index: 0.8683567047119141\n",
      "ISIC_0013610.jpg -- jaccard index: 0.8973913788795471\n",
      "ISIC_0013615.jpg -- jaccard index: 0.7690553069114685\n",
      "ISIC_0013672.jpg -- jaccard index: 0.796716034412384\n",
      "ISIC_0013678.jpg -- jaccard index: 0.9203823804855347\n",
      "ISIC_0013690.jpg -- jaccard index: 0.6613085269927979\n",
      "ISIC_0013695.jpg -- jaccard index: 0.8266229033470154\n",
      "ISIC_0013702.jpg -- jaccard index: 0.549446702003479\n",
      "ISIC_0013712.jpg -- jaccard index: 0.8759400248527527\n",
      "ISIC_0013713.jpg -- jaccard index: 0.9288139343261719\n",
      "ISIC_0013721.jpg -- jaccard index: 0.4018714129924774\n",
      "ISIC_0013738.jpg -- jaccard index: 0.9264039397239685\n",
      "ISIC_0013793.jpg -- jaccard index: 0.8760133385658264\n",
      "ISIC_0013794.jpg -- jaccard index: 0.933950662612915\n",
      "ISIC_0013803.jpg -- jaccard index: 0.836031973361969\n",
      "ISIC_0013807.jpg -- jaccard index: 0.7707245945930481\n",
      "ISIC_0013815.jpg -- jaccard index: 0.8065898418426514\n",
      "ISIC_0013832.jpg -- jaccard index: 0.6704452037811279\n",
      "ISIC_0013839.jpg -- jaccard index: 0.7805213332176208\n",
      "ISIC_0013863.jpg -- jaccard index: 0.014777366071939468\n",
      "ISIC_0013867.jpg -- jaccard index: 0.6447170972824097\n",
      "ISIC_0013897.jpg -- jaccard index: 0.8716174364089966\n",
      "ISIC_0013929.jpg -- jaccard index: 0.5177656412124634\n",
      "ISIC_0013942.jpg -- jaccard index: 0.8721251487731934\n",
      "ISIC_0013962.jpg -- jaccard index: 0.9052890539169312\n",
      "ISIC_0013966.jpg -- jaccard index: 0.045444928109645844\n",
      "ISIC_0013970.jpg -- jaccard index: 0.4729346036911011\n",
      "ISIC_0013972.jpg -- jaccard index: 0.00012683916429523379\n",
      "ISIC_0013996.jpg -- jaccard index: 0.8163846731185913\n",
      "ISIC_0014026.jpg -- jaccard index: 0.9031423926353455\n",
      "ISIC_0014028.jpg -- jaccard index: 0.8692945241928101\n",
      "ISIC_0014073.jpg -- jaccard index: 0.8268455266952515\n",
      "ISIC_0014076.jpg -- jaccard index: 0.8521448373794556\n",
      "ISIC_0014089.jpg -- jaccard index: 0.9006927013397217\n",
      "ISIC_0014092.jpg -- jaccard index: 0.7980865240097046\n",
      "ISIC_0014110.jpg -- jaccard index: 0.9362958073616028\n",
      "ISIC_0014136.jpg -- jaccard index: 0.9293676614761353\n",
      "ISIC_0014150.jpg -- jaccard index: 0.9411516189575195\n",
      "ISIC_0014158.jpg -- jaccard index: 0.9510268568992615\n",
      "ISIC_0014173.jpg -- jaccard index: 0.79022616147995\n",
      "ISIC_0014183.jpg -- jaccard index: 0.47657638788223267\n",
      "ISIC_0014190.jpg -- jaccard index: 0.7102332711219788\n",
      "ISIC_0014248.jpg -- jaccard index: 0.5318196415901184\n",
      "ISIC_0014253.jpg -- jaccard index: 0.9260880947113037\n",
      "ISIC_0014273.jpg -- jaccard index: 0.8761350512504578\n",
      "ISIC_0014311.jpg -- jaccard index: 0.9319155812263489\n",
      "ISIC_0014316.jpg -- jaccard index: 0.9191797375679016\n",
      "ISIC_0014336.jpg -- jaccard index: 0.7525472044944763\n",
      "ISIC_0014361.jpg -- jaccard index: 0.8992464542388916\n",
      "ISIC_0014394.jpg -- jaccard index: 0.7970102429389954\n",
      "ISIC_0014410.jpg -- jaccard index: 0.7841485738754272\n",
      "ISIC_0014419.jpg -- jaccard index: 0.6921517252922058\n",
      "ISIC_0014434.jpg -- jaccard index: 0.7328537702560425\n",
      "ISIC_0014458.jpg -- jaccard index: 0.946874737739563\n",
      "ISIC_0014476.jpg -- jaccard index: 0.7096304297447205\n",
      "ISIC_0014486.jpg -- jaccard index: 0.8974335789680481\n",
      "ISIC_0014506.jpg -- jaccard index: 0.7720950245857239\n",
      "ISIC_0014525.jpg -- jaccard index: 0.3122282922267914\n",
      "ISIC_0014526.jpg -- jaccard index: 0.7123178243637085\n",
      "ISIC_0014545.jpg -- jaccard index: 0.9596105813980103\n",
      "ISIC_0014546.jpg -- jaccard index: 0.802140474319458\n",
      "ISIC_0014580.jpg -- jaccard index: 0.7357921600341797\n",
      "ISIC_0014601.jpg -- jaccard index: 0.7709988355636597\n",
      "ISIC_0014603.jpg -- jaccard index: 0.7881859540939331\n",
      "ISIC_0014632.jpg -- jaccard index: 0.5855625867843628\n",
      "ISIC_0014657.jpg -- jaccard index: 0.9259465336799622\n",
      "ISIC_0014665.jpg -- jaccard index: 0.9617363810539246\n",
      "ISIC_0014666.jpg -- jaccard index: 0.7830722332000732\n",
      "ISIC_0014680.jpg -- jaccard index: 0.9425166845321655\n",
      "ISIC_0014688.jpg -- jaccard index: 0.8646716475486755\n",
      "ISIC_0014692.jpg -- jaccard index: 0.9266697764396667\n",
      "ISIC_0014694.jpg -- jaccard index: 0.9696772694587708\n",
      "ISIC_0014708.jpg -- jaccard index: 0.912213146686554\n",
      "ISIC_0014713.jpg -- jaccard index: 0.7705826759338379\n",
      "ISIC_0014722.jpg -- jaccard index: 0.944023072719574\n",
      "ISIC_0014723.jpg -- jaccard index: 0.8765162229537964\n",
      "ISIC_0014724.jpg -- jaccard index: 0.8645178079605103\n",
      "ISIC_0014726.jpg -- jaccard index: 0.8551724553108215\n",
      "ISIC_0014735.jpg -- jaccard index: 0.9742765426635742\n",
      "ISIC_0014739.jpg -- jaccard index: 0.8849297165870667\n",
      "ISIC_0014743.jpg -- jaccard index: 0.832572340965271\n",
      "ISIC_0014745.jpg -- jaccard index: 0.9657881259918213\n",
      "ISIC_0014753.jpg -- jaccard index: 0.9362542629241943\n",
      "ISIC_0014760.jpg -- jaccard index: 0.9721882939338684\n",
      "ISIC_0014775.jpg -- jaccard index: 0.650471031665802\n",
      "ISIC_0014780.jpg -- jaccard index: 0.8994119167327881\n",
      "ISIC_0014787.jpg -- jaccard index: 0.8245641589164734\n",
      "ISIC_0014794.jpg -- jaccard index: 0.958993673324585\n",
      "ISIC_0014805.jpg -- jaccard index: 0.9300821423530579\n",
      "ISIC_0014826.jpg -- jaccard index: 0.8538572788238525\n",
      "ISIC_0014838.jpg -- jaccard index: 0.9038032293319702\n",
      "ISIC_0014844.jpg -- jaccard index: 0.8762030601501465\n",
      "ISIC_0014845.jpg -- jaccard index: 0.9097012877464294\n",
      "ISIC_0014846.jpg -- jaccard index: 0.9756255745887756\n",
      "ISIC_0014848.jpg -- jaccard index: 0.9453567862510681\n",
      "ISIC_0014855.jpg -- jaccard index: 0.8848387002944946\n",
      "ISIC_0014857.jpg -- jaccard index: 0.9277890920639038\n",
      "ISIC_0014930.jpg -- jaccard index: 0.9510499238967896\n",
      "ISIC_0014932.jpg -- jaccard index: 0.5084666013717651\n",
      "ISIC_0014936.jpg -- jaccard index: 0.8235988616943359\n",
      "ISIC_0014947.jpg -- jaccard index: 0.9513354301452637\n",
      "ISIC_0014951.jpg -- jaccard index: 0.9694132208824158\n",
      "ISIC_0014956.jpg -- jaccard index: 0.8237260580062866\n",
      "ISIC_0014968.jpg -- jaccard index: 0.9323958158493042\n",
      "ISIC_0014974.jpg -- jaccard index: 0.9341613054275513\n",
      "ISIC_0014983.jpg -- jaccard index: 0.9599646329879761\n",
      "ISIC_0014985.jpg -- jaccard index: 0.5697838068008423\n",
      "ISIC_0014987.jpg -- jaccard index: 0.8560888767242432\n",
      "ISIC_0015008.jpg -- jaccard index: 0.892565906047821\n",
      "ISIC_0015016.jpg -- jaccard index: 0.943442165851593\n",
      "ISIC_0015030.jpg -- jaccard index: 0.8366578817367554\n",
      "ISIC_0015034.jpg -- jaccard index: 0.9592008590698242\n",
      "ISIC_0015040.jpg -- jaccard index: 0.5868430733680725\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ISIC_0015044.jpg -- jaccard index: 0.9443173408508301\n",
      "ISIC_0015057.jpg -- jaccard index: 0.7822727560997009\n",
      "ISIC_0015108.jpg -- jaccard index: 0.9098945260047913\n",
      "ISIC_0015125.jpg -- jaccard index: 0.9568882584571838\n",
      "ISIC_0015152.jpg -- jaccard index: 0.6207366585731506\n",
      "ISIC_0015153.jpg -- jaccard index: 0.8815511465072632\n",
      "ISIC_0015160.jpg -- jaccard index: 0.8988310098648071\n",
      "ISIC_0015174.jpg -- jaccard index: 0.865166187286377\n",
      "ISIC_0015190.jpg -- jaccard index: 0.9016358256340027\n",
      "ISIC_0015193.jpg -- jaccard index: 0.9539282321929932\n",
      "ISIC_0015207.jpg -- jaccard index: 0.6900749206542969\n",
      "ISIC_0015208.jpg -- jaccard index: 0.9435019493103027\n",
      "ISIC_0015211.jpg -- jaccard index: 0.6227360367774963\n",
      "ISIC_0015212.jpg -- jaccard index: 0.9320597052574158\n",
      "ISIC_0015215.jpg -- jaccard index: 0.8807101845741272\n",
      "ISIC_0015223.jpg -- jaccard index: 0.959429919719696\n",
      "ISIC_0015229.jpg -- jaccard index: 0.8354494571685791\n",
      "ISIC_0015241.jpg -- jaccard index: 0.9012417793273926\n",
      "ISIC_0015279.jpg -- jaccard index: 0.7272276282310486\n",
      "ISIC_0015293.jpg -- jaccard index: 0.8413297533988953\n",
      "ISIC_0015309.jpg -- jaccard index: 0.9643109440803528\n",
      "ISIC_0015312.jpg -- jaccard index: 0.9663286805152893\n",
      "ISIC_0015360.jpg -- jaccard index: 0.8314496874809265\n",
      "ISIC_0015368.jpg -- jaccard index: 0.9521819353103638\n",
      "ISIC_0015412.jpg -- jaccard index: 0.8536697030067444\n",
      "ISIC_0015440.jpg -- jaccard index: 0.7023367881774902\n",
      "ISIC_0015476.jpg -- jaccard index: 0.9385107755661011\n",
      "ISIC_0015483.jpg -- jaccard index: 0.8910741209983826\n",
      "ISIC_0015510.jpg -- jaccard index: 0.8844892978668213\n",
      "ISIC_0015563.jpg -- jaccard index: 0.9259839057922363\n",
      "ISIC_0015568.jpg -- jaccard index: 0.8845945000648499\n",
      "ISIC_0015593.jpg -- jaccard index: 0.7972034811973572\n",
      "ISIC_0015607.jpg -- jaccard index: 0.21575142443180084\n",
      "ISIC_0015941.jpg -- jaccard index: 0.9020296335220337\n",
      "ISIC_0015946.jpg -- jaccard index: 0.9388395547866821\n",
      "ISIC_0015948.jpg -- jaccard index: 0.6729769110679626\n",
      "ISIC_0015949.jpg -- jaccard index: 0.9452101588249207\n",
      "ISIC_0015955.jpg -- jaccard index: 0.8386157751083374\n",
      "ISIC_0015962.jpg -- jaccard index: 0.9103819131851196\n",
      "ISIC_0015963.jpg -- jaccard index: 0.862511932849884\n",
      "ISIC_0015968.jpg -- jaccard index: 0.6081522107124329\n",
      "ISIC_0015969.jpg -- jaccard index: 0.38158857822418213\n",
      "ISIC_0015971.jpg -- jaccard index: 0.9277987480163574\n",
      "ISIC_0015973.jpg -- jaccard index: 0.941278338432312\n",
      "ISIC_0015974.jpg -- jaccard index: 0.8521876335144043\n",
      "ISIC_0015980.jpg -- jaccard index: 0.9072635769844055\n",
      "ISIC_0015981.jpg -- jaccard index: 0.9554996490478516\n",
      "ISIC_0015998.jpg -- jaccard index: 0.768539547920227\n",
      "ISIC_0016000.jpg -- jaccard index: 0.8852196931838989\n",
      "ISIC_0016003.jpg -- jaccard index: 0.8666402101516724\n",
      "ISIC_0016012.jpg -- jaccard index: 0.8391408324241638\n",
      "ISIC_0016024.jpg -- jaccard index: 0.46989598870277405\n",
      "ISIC_0016025.jpg -- jaccard index: 0.6698729991912842\n",
      "ISIC_0016028.jpg -- jaccard index: 0.8832859396934509\n",
      "ISIC_0016029.jpg -- jaccard index: 0.5943400263786316\n",
      "ISIC_0016037.jpg -- jaccard index: 0.7824373841285706\n",
      "ISIC_0016040.jpg -- jaccard index: 0.8275763988494873\n",
      "ISIC_0016044.jpg -- jaccard index: 0.7406482696533203\n",
      "ISIC_0016045.jpg -- jaccard index: 0.8992369174957275\n",
      "ISIC_0016050.jpg -- jaccard index: 0.8985377550125122\n",
      "ISIC_0016064.jpg -- jaccard index: 0.8298608064651489\n",
      "ISIC_0016065.jpg -- jaccard index: 0.9081137776374817\n",
      "ISIC_0016066.jpg -- jaccard index: 0.7346119284629822\n"
     ]
    }
   ],
   "source": [
    "model.load_weights(\"unet/unet_lesion_20190509_0.82.hdf5\")\n",
    "\n",
    "file_names = next(os.walk(test_data_dir))[2]\n",
    "scores = []\n",
    "for file in file_names:\n",
    "    grey_img = load_img(os.path.join(test_data_dir,file), target_size=(img_rows, img_cols), grayscale=False)\n",
    "    mask_img = load_img(os.path.join(test_data_mask_dir,file.split('.')[0]+\"_segmentation.png\"), \n",
    "                        target_size=(img_rows, img_cols), grayscale=True)\n",
    "    img = img_to_array(grey_img)\n",
    "    img_mask = img_to_array(mask_img)\n",
    "    \n",
    "    #Preprocess image mask\n",
    "    #img_mask = img_mask /255\n",
    "    #img_mask[img_mask > 0.5] = 1\n",
    "    #img_mask[img_mask <= 0.5] = 0\n",
    "    #Preprocess images\n",
    "    #mean = np.mean(img)  # mean for data centering\n",
    "    #std = np.std(img)  # std for data normalization\n",
    "    #img -= mean\n",
    "    #img /= std\n",
    "    img, img_mask = normalizeData(img, img_mask)\n",
    "    img = np.reshape(img,(1,)+img.shape)\n",
    "    \n",
    "    \n",
    "    \n",
    "    pred = model.predict([img])\n",
    "    sess = tf.Session()\n",
    "    score = sess.run(jaccard_coef(img_mask, pred))\n",
    "    print(\"{} -- jaccard index: {}\".format(file,score))\n",
    "    scores.append([file,score])\n",
    "\n",
    "    result_img = array_to_img(pred[0] * 255 )\n",
    "    result_img.save(os.path.join(test_data_pred_dir, file.split('.')[0] + '_predict.jpg'))\n",
    "\n",
    "with open(\"unet_test_result.csv\", 'w') as f:\n",
    "    f.write(\"filename, jaccard_index\\n\")\n",
    "    for i in range(len(scores)):\n",
    "        #print(scores[i])\n",
    "        f.write(\"{},{}\\n\".format(scores[i][0], scores[i][1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
